Контекст:.Net 3.5, С#
Я хотел бы иметь механизм кеширования в моем приложении консоли.
Вместо того, чтобы повторно изобретать колесо, я бы хотел использовать System.Web.Caching.Cache
(и что окончательное решение, я не могу использовать другую структуру кэширования, не спрашивайте почему).
Тем не менее, похоже, что System.Web.Caching.Cache
предполагается запустить только в допустимом контексте HTTP. Мой очень простой фрагмент выглядит следующим образом:
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);
}
и результат:
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()
Итак, очевидно, что я делаю что-то не так. Любые идеи?
Обновить: +1 к большинству ответов, получение кеша через статические методы - правильное использование, а именно HttpRuntime.Cache
и HttpContext.Current.Cache
. Спасибо всем!