当前位置: 首页 > 编程语言 > C#

System.Web.Caching.Cache在Model中抛出NullException分享

时间:2023-04-10 14:32:13 C#

System.Web.Caching.Cache在Model中抛出NullException或许这道题应该很简单,其实不然。我阅读了在ASP.NET中使用System.Web.Caching.Cache类的问题。我有一个单例类:privateSystem.Web.Caching.Cache_cache;私有静态CacheModel_instance=null;私有CacheModel(){_cache=newCache();}publicstaticCacheModelInstance{get{return_instance??新缓存模型();}}publicvoidSetCache(stringkey,objectvalue){_cache.Insert(key,value);如果在我的代码中的其他任何地方,我调用以下内容:CacheModelaCache=CacheModel.Instance;aCache.SetCache("mykey",newstring[2]{"Val1","Val2"});//这一行抛出空引用异常为什么第二行会抛出空引用异常?也许我在代码的某处犯了一些错误?谢谢。您不应使用Cache类型来初始化您自己的实例:此API支持.NETFramework基础结构,不能直接在您的代码中使用。在不直接知道为什么会出现空引用异常的情况下,我之前也遇到过这个问题,它与Web应用程序的基础设施和生命周期密切相关:每个应用程序域创建一个此类的实例,并且只要应用程序域保持它活跃并且仍然有效。有关此类实例的信息可通过HttpContext对象的Cache属性或Page对象的Cache属性获得。最后,不要以这种方式直接使用System.Web.Caching.Cache类型-访问现有的缓存实例或使用类似企业库的替代方案来缓存应用程序块。正如格兰特在上面指出的那样,System.web.caching.cache存储ASP.NET内部数据(如App_start中内置的包)。请改用System.Runtime.Caching。这是MSDN上的演练这是一个片段:`usingSystem.Runtime.Caching;...ObjectCache缓存=MemoryCache.Default;变种测试=“你好世界”;缓存[“问候语”]=测试;vargreeting=(string)cache["greeting"];`在ASP.NET4中,缓存是使用ObjectCache类实现的。详细阅读MSDN以上是C#学习教程:System.Web.Caching.Cachethrowsnullexceptioninthemodel分享的所有内容,如果对大家有用需要进一步了解C#学习教程,希望大家多多指教多多关照——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: