我正在检出ASP.NET 4.0中的OutputCacheProvider并使用它将我的输出缓存存储到MongoDb数据库中。我无法理解Add方法的用途,它是OutputCacheProvider的重写方法之一。当您将VaryByParam设置为某些内容时,会调用Add方法。所以,如果我有VaryByParam =“id”,那么Add方法将被调用。.NET 4.0实现OutputCacheProvider
但是在添加集之后,我也可以插入到Set方法中的MongoDb数据库中。
public override void Set(string key, object entry, DateTime utcExpiry)
{
// if there is something in the query use the path and query to generate the key
var url = HttpContext.Current.Request.Url;
if (!String.IsNullOrEmpty(url.Query))
{
key = url.PathAndQuery;
}
Debug.WriteLine("Set(" + key + "," + entry + "," + utcExpiry + ")");
_service.Set(
new CacheItem() { Key = MD5(key), Item = entry, Expires = utcExpiry }
);
}
内部的设定方法我用PathAndQuery来获取查询字符串的PARAMS,然后做一个MD5的密钥,并将其保存到MongoDB的数据库。
看来像Add方法将是有用的,如果我正在做像VaryByParam =“自定义”之类的东西。
任何人都可以点亮OutputCacheProvider的Add方法吗?