只有当null作为参数传递时,是否可以缓存函数输出? 像这样:
[WebMethod(CacheDuration = 360, NullOnly = true)]
public SomeClass MyMethod(MyClass whatever)
{
//do something...
return something;
}
因此,无论== null,函数返回缓存的输出,当它不为null时,它会生成输出而不缓存它。
答案 0 :(得分:1)
我不知道是否有更多的声明性方法,但您可以轻松地将结果缓存在常规缓存中并检查参数是否为null,如下所示:
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;
}
但是,即使通过缓存检索结果,此版本也需要序列化结果。