是否可以迭代OutputCache键?我知道你可以通过HttpResponse.RemoveOutputCacheItem()单独删除它们,但是有没有办法可以迭代所有键来查看集合中的内容?
我搜索了对象查看器,但没有看到任何内容.
最糟糕的情况是,我可以保持自己的索引.因为我正在通过VaryByCustom做所有事情,所以他们通过global.asax中的方法“获得”.我觉得必须有更优雅的方式来做到这一点.
最佳答案 如果您使用的是ASP.NET 4.0,则可以通过编写自己的
OutputCacheProvider来实现此目的.这样您就可以在项目缓存时存储密钥:
namespace StackOverflowOutputCacheProvider
{
public class SOOutputCacheProvider: OutputCacheProvider
{
public override object Add(string key, object entry, DateTime utcExpiry)
{
// Do something here to store the key
// Persist the entry object in a persistence layer somewhere e.g. in-memory cache, database, file system
return entry;
}
...
}
}
然后,您就可以从存储它们的任何地方读取密钥.