Contesto: .Net 3.5, C#
Mi piacerebbe avere il meccanismo di memorizzazione nella cache nella mia applicazione Console.
Invece di reinventare la ruota, mi piacerebbe usare System.Web.Caching.Cache
(e questa è una decisione definitiva, non posso usare altro framework di caching, non chiedere perché).
Tuttavia, sembra che System.Web.Caching.Cache
debba essere eseguito solo in un contesto HTTP valido. Il mio molto semplice frammento di simile a questa:Come posso utilizzare System.Web.Caching.Cache in un'applicazione console?
using System;
using System.Web.Caching;
using System.Web;
Cache c = new Cache();
try
{
c.Insert("a", 123);
}
catch (Exception ex)
{
Console.WriteLine("cannot insert to cache, exception:");
Console.WriteLine(ex);
}
e il risultato è:
cannot insert to cache, exception: System.NullReferenceException: Object reference not set to an instance of an object. at System.Web.Caching.Cache.Insert(String key, Object value) at MyClass.RunSnippet()
Così, ovviamente, sto facendo qualcosa di sbagliato qui. Qualche idea?
Aggiornamento: +1 per la maggior parte delle risposte, ottenendo la cache tramite i metodi statici è l'uso corretto, vale a dire HttpRuntime.Cache
e HttpContext.Current.Cache
. Grazie a tutti!
"vedi qui" collegamento è rotto –
@ Ron- che è un bug StackOverflow. Ecco un TinyUrl per lo stesso collegamento: http://tinyurl.com/ms35eu – RichardOD