我有一个初始化成本相对较高的对象,它提供了处理Web服务请求所需的线程安全计算方法。
我正在寻找在请求之间保持初始化实例可用的最佳方法。
一种方法是将其声明为静态变量。然后它将一直可用,直到AppDomain被回收。
这是一个不使用WCF的旧Web服务,但如果可以提供更好的解决方案,则可以选择转换。
有更好的方法吗?
答案 0 :(得分:2)
如何在HttpRuntime.Cache
中缓存对象?
MyObject val = (MyObject)HttpRuntime.Cache["MyCacheKey"];
if (val == null)
{
val = // create your expensive object here
HttpRuntime.Cache.Insert("MyCacheKey", val, null,
DateTime.Now.AddSeconds(3600),
System.Web.Caching.Cache.NoSlidingExpiration);
}
这里我将它留在缓存中长达一个小时,但你可以根据需要改变它。