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 に答える