Я проверяю OutputCacheProvider в ASP.NET 4.0 и использую его для хранения выходного кэша в базе данных MongoDb. Я не могу понять цель метода Add, который является одним из методов переопределения для OutputCacheProvider. Метод Add вызывается, когда для VaryByParam установлено что-либо. Итак, если у меня есть VaryByParam = "id", то будет вызван метод Add.
Но после Add также вызывается, и я могу вставить в базу данных MongoDb внутри метода Set.
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 }
);
}
Внутри метода Set я использую PathAndQuery, чтобы получить параметры QueryString, а затем выполнить MD5 для ключа и сохранить его в базе данных MongoDb.
Кажется, что метод Add будет полезен, если я делаю что-то вроде VaryByParam = "custom" или что-то в этом роде.
Может кто-нибудь пролить свет на метод Add для OutputCacheProvider?