我今天第一次去了AppFabric - 缓存(又名Velocity女士)并检查了msdn虚拟实验室。
https://cmg.vlabcenter.com/default.aspx?moduleid=4d352091-dd7d-4f6c-815c-db2eafe608c7
我有这个代码示例,我没有。它创建一个缓存对象并将其存储在会话状态中。文档只是说:
我们需要存储缓存对象 会话状态和检索相同 每次我们的那个对象的实例 需要使用它。
这不是我以前在ASP.NET中使用缓存的方式。这种模式的原因是什么,我必须使用它吗?
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;
}
答案 0 :(得分:1)
这是因为DataCacheFactory
是一个很难创建的对象 - 您不希望每次要访问缓存时都创建它的实例。
他们在实验室中向您展示的是如何创建DataCacheFactory
一次的实例以获取DataCache
实例,然后存储该DataCache实例在会话状态中,因此您可以在每次访问缓存时返回到该状态。
当然,这仍然意味着你要为每个用户创建一个DataCacheFactory 实例,我认为将它存储在Application状态会是一个更好的设计。