Кэш контроля ошибок при рендеринге недоступен - PullRequest
3 голосов
/ 31 января 2009

У меня есть пользовательский элемент управления, который показывает значение, полученное из базы данных (цена продукта). Это значение хранится в кэше по соображениям производительности и работает нормально. Однако в режиме разработки в Visual Studio 2008 появляется сообщение об ошибке: «Управление воспроизведением ошибок. Произошло необработанное исключение. Кэш недоступен»

Я использую ControlDesigner с очень простым GetDesignTimeHtml:

public override string GetDesignTimeHtml()
{
  return "[$9.99]";
}

Я надеялся, что это решит проблему, но это не так.

Ответы [ 2 ]

4 голосов
/ 31 января 2009

Вам нужно добавить обертку в ваш доступ к кэшу для пользовательских элементов управления, иначе они не будут работать в режиме разработки, когда HttpContext.Current равен нулю. Вы хотите сделать что-то вроде этого:

public object GetFromCache(string key)
{
     var myContext = HttpContext.Current;
     if(myContext != null)
     {
         return myContext.Cache[key];
     }
     return "[Design Time Value]";
}
0 голосов
/ 31 января 2009

Вы непосредственно ссылаетесь на объект Cache в вашем ASPX-файле?

...