开发者

Share object instance between web service invocations

开发者 https://www.devze.com 2022-12-20 21:40 出处:网络
I have an object that has relatively high initializ开发者_JAVA百科ation cost that provides a thread-safe calculation method needed to process web service requests.

I have an object that has relatively high initializ开发者_JAVA百科ation cost that provides a thread-safe calculation method needed to process web service requests.

I'm looking for the best way to keep an initialized instance available between requests.

One method is to declare it as a static variable. It would then remain available until the AppDomain is recycled.

This is an older web service that does not use WCF, but converting is an option if that would provide a better solution.

Is there a better approach?


What about caching the object in 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);
}

Here I leave it in the cache for up to an hour, but you can vary this as needed.

0

精彩评论

暂无评论...
验证码 换一张
取 消