Caching 为什么在使用AppFabric时缓存对象存储在会话中?
今天我第一次去AppFabric-caching(又名Ms Velocity)并查看了msdn虚拟实验室 其中有一个我没有得到的代码示例。它创建一个缓存对象并将其存储在会话状态。文件只是说: 我们需要将缓存对象存储在 会话状态,并检索相同的会话状态 每次我们看到那个对象的实例 我们需要使用它 这不是我在ASP.NET中使用缓存的方式。这种模式的原因是什么?我必须使用它吗Caching 为什么在使用AppFabric时缓存对象存储在会话中?,caching,c#-4.0,appfabric,Caching,C# 4.0,Appfabric,今天我第一次去AppFabric-caching(又名Ms Velocity)并查看了msdn虚拟实验室 其中有一个我没有得到的代码示例。它创建一个缓存对象并将其存储在会话状态。文件只是说: 我们需要将缓存对象存储在 会话状态,并检索相同的会话状态 每次我们看到那个对象的实例 我们需要使用它 这不是我在ASP.NET中使用缓存的方式。这种模式的原因是什么?我必须使用它吗 private DataCache GetCache() { DataCache dCache; if (S
private DataCache GetCache()
{
DataCache dCache;
if (Session["dCache"] != null)
{
dCache = (DataCache)Session["dCache"];
if (dCache == null)
throw new InvalidOperationException("Unable to get or create distributed cache");
}
else
{
var factory = new DataCacheFactory();
dCache = factory.GetCache("default");
Session["dCache"] = dCache;
}
return dCache;
}
这是因为
DataCacheFactory
是一个昂贵的创建对象-您不希望每次访问缓存时都创建它的实例
他们在实验室向您展示的是如何创建一次DataCacheFactory
的实例,以获得DataCache
实例,然后将该DataCache实例存储在会话状态,以便您每次访问缓存时都可以返回到该实例
当然,这仍然意味着您要为每个用户创建DataCacheFactory实例,我认为将其存储在应用程序状态将是一个更好的设计。看起来DataCacheFactory是一个错误的命名概念。。