我有一个初始化成本相对较高的对象,它提供了处理 Web 服务请求所需的线程安全计算方法。
我正在寻找在请求之间保持初始化实例可用的最佳方法。
一种方法是将其声明为静态变量。然后它会一直可用,直到 AppDomain 被回收。
这是一个较旧的 Web 服务,不使用 WCF,但如果转换会提供更好的解决方案,则可以选择转换。
有没有更好的方法?
最佳答案
缓存 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);
}
在这里,我将它保留在缓存中长达一个小时,但您可以根据需要更改此设置。
关于.net - 在 Web 服务调用之间共享对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322656/