2012-12-24 15 views
6

Próbuję znaleźć sposób, aby instancja MemoryCache.Default 4.0 używała porównywalnika nierozróżniającego wielkości liter.Nieodczuwalna analiza wielkości liter MemoryCache

Czy to możliwe?

var bob = new object(); 

MemoryCache.Default["Bob"] = bob; 

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

Odpowiedz

5

Od patrząc na kod poprzez ILSpy, to nie wydaje się być możliwe. Ponieważ za kulisami ostatecznie używasz GetHashCode() twojego klucza ciąg.

Uważam, że najłatwiejszym rozwiązaniem jest zaimplementowanie niestandardowej pamięci podręcznej, rozszerzającej MemoryCache, która zastępuje wszystkie metody, które wchodzą w interakcję z kluczem, i wywołuje ToUpperInvariant(), przekazując go jako parametr do wywołania podstawowego.

Powiązane problemy