我在 Windows 7 上的 VS 2010 Ultimate 上运行并尝试使用 MemoryCache (System.Runtime.Caching),由于某种原因,当方法结束时缓存立即被清除,当我再次重新运行该方法时,它正在尝试创建一个新的。这是我在 MSDN 文档中使用的代码:
ObjectCache cache = MemoryCache.Default;
string fileContents = cache["filecontents"] as string;
if (fileContents == null)
{
CacheItemPolicy policy = new CacheItemPolicy();
List<string> filePaths = new List<string>();
filePaths.Add("c:\\Windows\\Enterprise.xml");
// policy.ChangeMonitors.Add(new HostFileChangeMonitor(filePaths));
policy.Priority = CacheItemPriority.NotRemovable;
policy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(3600);
// Fetch the file contents.
fileContents =
File.ReadAllText("c:\\Windows\\Enterprise.xml");
cache.Set("filecontents", fileContents, policy);
}
Console.WriteLine(fileContents);
我在 Console Main 方法中有这段代码。
令人惊讶的是,我有一个从 QTP 使用的包装 C# 4.0 程序集,它工作得非常好。缓存保留在 QTP 中的每次运行时。
请帮忙。