Создание статических методов доступа к кэшу - PullRequest
9 голосов
/ 12 ноября 2010

В ASP.NET, есть ли причина не создавать набор функций, которые Add / Remove / Get из объекта Cache Static?

Get () - просто получает элемент, без причины небыть статичным
Add (), Remove () - я читал, что добавление / удаление в кеш имеет собственный механизм внутренней блокировки, поэтому они могут быть статичными без моего создания собственной блокировки lock () {}.

1 Ответ

10 голосов
/ 12 ноября 2010

К ним уже можно получить доступ в статическом контексте через

HttpRuntime.Cache

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

Отвечая на ваш вопрос:

Да, вы можете использовать это, чтобы справиться с этим. Вы бы имели что-то вроде

public static class StaticCache
{

    public static Add(object obj)
    {        
        try {            
            HttpRuntime.Cache.Add(obj);            
        }
        catch(Exception ex) {
            //log or something            
        }        
    }    
}

И использование будет похоже на

StaticCache.Add("bob");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...