我正试图找到一种方法使.net 4.0 MemoryCache.Default实例使用不区分大小写的比较器。
这可能吗?
var bob = new object();
MemoryCache.Default["Bob"] = bob;
bob == MemoryCache.Default["bob"]; --> true
答案 0 :(得分:5)
通过ILSpy查看代码,似乎无法实现。因为在幕后它最终使用了你的密钥字符串的GetHashCode()
。
我认为最简单的解决方法是实现自定义缓存,扩展MemoryCache
覆盖与密钥交互的所有方法,并在将其作为参数传递给ToUpperInvariant()
时调用基地电话。