8

我试图找到一种方法让 .net 4.0 MemoryCache.Default 实例使用不区分大小写的比较器。

那可能吗?

var bob = new object();

MemoryCache.Default["Bob"] = bob;

bob == MemoryCache.Default["bob"]; --> true
4

1 回答 1

7

通过ILSpy查看代码,这似乎是不可能的。因为在幕后它最终使用的GetHashCode()是您的密钥字符串。

我认为最简单的解决方法是实现自定义缓存,扩展MemoryCache它覆盖与键交互的所有方法,并ToUpperInvariant()在将其作为参数传递给基调用时调用。

于 2012-12-24T02:15:44.413 回答