c# – 完全无法定义System.Runtime.Caching的UpdateCallback

c# – 完全无法定义System.Runtime.Caching的UpdateCallback,第1张

概述我在使用System.Runtime.Caching库的CacheEntryUpdateCallback委托时遇到了困难.每当我定义和设置回调时,我得到一个ArgumentException,“CacheItemUpdateCallback必须为null”.为什么必须为空?我应该能够设置它然后获得回调. 使用CacheEntryRemovedCallback委托时,我不明白这一点.我可以在所有项目 我在使用System.Runtime.Caching库的CacheEntryUpdateCallback委托时遇到了困难.每当我定义和设置回调时,我得到一个ArgumentException,“CacheItemUpdateCallback必须为null”.为什么必须为空?我应该能够设置它然后获得回调.

使用CacheEntryRemovedCallback委托时,我不明白这一点.我可以在所有项目中可靠地重现这一点.难道我做错了什么?这是一个小样本应用程序:

using System.Runtime.Caching;class Program {  static voID Main(string[] args) {    var policy = new CacheItemPolicy();    policy.SlIDingExpiration = TimeSpan.FromSeconds(10);    // this works    //policy.RemovedCallback = Removed;    // this creates the exception    policy.UpdateCallback = Update;    MemoryCache.Default.Add("test","123",policy);    Console.Read();  }  static voID Update(CacheEntryUpdateArguments arguments) { }  static voID Removed(CacheEntryRemovedArugments arguments) { }}
解决方法 根据文档,您应该使用Set而不是Add.

MemoryCache.Add:

The Add and AddOrGetExisting method overloads do not support the UpdateCallback property. Therefore,to set the UpdateCallback property for a cache entry,use the Set method overloads instead.

确实工作没有问题:

MemoryCache.Default.Set("test",policy);
总结

以上是内存溢出为你收集整理的c# – 完全无法定义System.Runtime.Caching的UpdateCallback全部内容,希望文章能够帮你解决c# – 完全无法定义System.Runtime.Caching的UpdateCallback所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1240829.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存