I .NET 4.0 er der kommet et helt nyt caching namespace og assembly. System.Runtime.Caching hedder namespacet og under det namespace ligger der en række abstrakte typer til udvikling af egne caching mekanisker samt et konkret API du kan bruge i din applikation, når du vil cache.
Den nye MemoryCache er bygget udfra ASP.NET caching, som igennem årene har været så populær, at mange også bruger det konkrete ASP.NET caching API i f.eks WPF eller WebForms. Nu har vi altså fået et bredere API der er beregnet til brug i alle former for applikationer.
Her er et simpelt eksempel:
string contents = string.Empty;
ObjectCache memCache = MemoryCache.Default;
if (memCache["persons"] == null) {
string filepath = Server.MapPath("persons.txt");
CacheItemPolicy itemPolicy = new CacheItemPolicy();
itemPolicy.AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddSeconds(30));
itemPolicy.ChangeMonitors.Add(
new HostFileChangeMonitor(new List<string> { filepath }));
contents = File.ReadAllText(filepath);
memCache.Set("persons", contents, itemPolicy);
}
Response.Write(contents);
Her opretter vi en instans af en ObjectCache, tjekker for en nøgle og indsætter evt. noget data fra en fil. Hvis filen senere bliver opdateret så opdateres cachen, det er HostFileChangeMonitor der er skyld i det. Når cachen udløber bliver der ligeledes opdateret.