Behöver få grepp på ASP.NET möjligheter att spara data i sessionen/applikationen. >HttpContext.Current.Cache Är dessa samma? Eller för att omformulerar mig.. Context är alias i asp.net för HttpContext.Current. Finns det något sätt man kan skriva ut ett meddelande när Cachen laddas om? Se kod nedan. den metoden kommer att köras av cachens egna tråd, det innebär att metoden mycket väl kan ha körts innan eller efter ngn fått sitt svar till sin browser.Spara data i cache?
i .asp så använde man ju ex Session, eller Application men nu verkar det finnas en uppsjö möjligheter.
Kan någon kortfattat förklara i vilka lägen jag använder dessa klasser/objekt
HttpContext.Current.Cache?
Context.Cache?
Context.Application?
Context.Session?
HttpApplication?
HttpApplicationState?
HttpSessionState?
Cache // sparar i Cachen viss tid eller så länge IIS tillåter.
Application // sparas för "evigt" i hela app. tills den startas om
Session // sparar i aktiv Session på klientenSv: Spara data i cache?
>Context.Cache
De här är samma...
>HttpApplicationState
>Context.Application
Application är av typen HttpApplicationState, det här är vår applikations variabel.
>Context.Session
>HttpSessionState
Samma gälle här
>HttpApplication
en webbapplikation, här har du tillgång till tex events.
Cachen funkar som så att du själv sätter expiration, det vill säga du talar om hur länge den skall leva. Den stödjer dessutom teknik som Callback för att köra en metod när ett cahce objekt tas bort och dependencies för att invalidera cachen när ngt förändrats.Sv: Spara data i cache?
HttpContext.Current.Cache.Insert("User","Sune Mangs");
Context.Cache.Insert("User","Sune Mangs");
Cache.Insert("User","Sune Mangs");Sv: Spara data i cache?
varför finns det 3 olika sätt att lägga till på?
HttpContext.Current.Cache.Insert("User","Sune Mangs");
Context.Cache.Insert("User","Sune Mangs");
Cache.Insert("User","Sune Mangs");Sv: Spara data i cache?
Cache är alias i asp.net för Context.Cache.Sv: Spara data i cache?
<code>
public dsCustomersTyped GetCustomers(bool sprangCachen)
{
System.Web.Caching.CacheItemRemovedCallback kunderCacheCB = new System.Web.Caching.CacheItemRemovedCallback(kunderCacheHarFattNyData);
string cacheNamn = "KunderCache";
object cacheData = (dsCustomersTyped)Cache[cacheNamn];
if((sprangCachen) || (cacheData == null))
{
cacheData = new KunderMetod().HamtaKunder();
Cache.Insert(cacheNamn, cacheData, null,DateTime.Now.AddSeconds(HamtaAntalSekunderFranConfig(cacheNamn)),TimeSpan.Zero,System.Web.Caching.CacheItemPriority.AboveNormal,kunderCacheCB);
}
return (dsCustomersTyped)cacheData;
}
public void kunderCacheHarFattNyData(string key,object cacheItem, System.Web.Caching.CacheItemRemovedReason reason)
{
Response.Write("The cached value with key '" + key + "' was removed from the cache. Reason: " + reason.ToString());
}
</code>
Response.Write verkar inte fungera här...
mvh StanleySv: Spara data i cache?
Så för att få information om det måste du antingen skriva till en fil, eller lägga en variable ngnstans (ex Appplication) som du kan läsa av.