我真的很困惑使用缓存。在ASP.NET Cache中,缓存对象是全局的,因此据我所知,我们可以在任何地方访问它。但是,当我查看缓存应用程序块时,如何使用我在application_start阶段创建的缓存。使用我在application_start上创建的缓存的策略是什么?
提前致谢,
答案 0 :(得分:1)
为缓存块创建了正确的配置代码段并添加到ASP.NET应用程序的web.config后,您可以从asp.net应用程序中的任何位置以相同的方式将项添加到缓存中。同样,在app.config或web.config中共享相同配置代码段的业务或服务层,您应该能够从缓存中检索项目。
这里有很好的解释:Exploring Caching : Using Caching Application Enterprise Library 4.1
所以只需尝试创建和使用ICacheManager,例如以这种方式:
//Create Instance of CacheManager
ICacheManager objCacheManager = CacheFactory.GetCacheManager();
//Add a new CacheItem to Cache
objCacheManager.Add("YourKey", yourObject);
然后从该IIS上运行的另一个项目或Web服务,但作为另一个应用程序,如果web.config包含用于配置缓存的相同代码段,请使用:
//Create Instance of CacheManager
ICacheManager objCacheManager = CacheFactory.GetCacheManager();
// Check If Key is in Cache Collection
if(objCacheManager.Contains("YourKey"))
{
var myObject = objCacheManager.GetData("YourKey");
}
实际上你应该想象这应该在应用程序架构的较低层次,如果你是通过业务逻辑从数据库加载数据,我想这块BL将从数据库中检索并添加到缓存然后在下一个查询将检查它是否存在于缓存中,如果不存在则将从数据库中再次加载。
有关配置代码段的示例,请检查我上面提到的链接。