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