ASP.NET веб-сервис Кэш - PullRequest
       3

ASP.NET веб-сервис Кэш

0 голосов
/ 14 ноября 2011

Можно ли кэшировать вывод функции только тогда, когда в качестве параметра передается значение null? Примерно так:

[WebMethod(CacheDuration = 360, NullOnly = true)]
public SomeClass MyMethod(MyClass whatever)
{
    //do something...
    return something;
}

Так что, когда все равно == null, функция возвращает кэшированный вывод, а когда она не равна нулю, она генерирует вывод без кеширования.

1 Ответ

1 голос
/ 14 ноября 2011

Я не знаю, есть ли более декларативный метод, но вы можете легко кэшировать результат в обычном кэше и проверить, является ли аргумент нулевым, как это:

public SomeClass MyMethod(MyClass whatever) 
{
    if(whatever == null)
    {
        SomeClass result = Cache["MyMethodCache"] as SomeClass;
        if(result != null)
        return result;
    }


    //do something...

    if(whatever == null)
    {
         Cache.Add("MyMethodCache",something, ... ); //duration, expiration policy, etc.
    }

    return something; 
} 

Однако эта версия должнасериализовать результат каждый раз, даже если он получен через кеш.

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