在Web服务调用之间共享对象实例

时间:2010-02-23 23:47:37

标签: .net web-services asmx

我有一个初始化成本相对较高的对象,它提供了处理Web服务请求所需的线程安全计算方法。

我正在寻找在请求之间保持初始化实例可用的最佳方法。

一种方法是将其声明为静态变量。然后它将一直可用,直到AppDomain被回收。

这是一个不使用WCF的旧Web服务,但如果可以提供更好的解决方案,则可以选择转换。

有更好的方法吗?

1 个答案:

答案 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);
}

这里我将它留在缓存中长达一个小时,但你可以根据需要改变它。