Amennyiben valamilyen cache megoldásra van szükségünk, webalkalmazásainkban bátran nyúlhatunk a HttpContext.Current.Cache-hez, ami egy elég szofisztikált és saját igényeinkre szabható gyorsítótár-megoldás.
De mi van a nem webes alkalmazásokkal? Ez a cache infrastruktúra onnan is használható, bár kicsit furcsa lehet, hogy a System.Web assemblyt be kell referenciálnunk pl. egy konzol alkalmazásba, de ha ez az ára, akkor ez az ára.
Viszont ilyenkor nincs HttpContext.Current, így értelemszerűen nincs .Cache sem. Workaround lehet, ha készítünk egy "kamu" HttpContext példányt, de még jobb, ha belelapozunk az Új Reflector Magazin aktuális számába: azt írja, hogy a HttpContext osztály Current propertyje semmi mást nem csinál, mint visszaadja a HttpRuntime.Cache-t:
public Cache get_Cache() { return HttpRuntime.Cache; }Ami pedig egy public sealed osztály public property-je, úgyhogy semmi sem akadályoz benne, hogy mi is megtegyük.
No more "HttpContext hack" nedded.

0 megjegyzés:
Megjegyzés küldése