.NET Web服务代理类是否可以安全地用作单身人士?

时间:2010-05-27 19:04:45

标签: .net web-services proxy-classes

我使用Visual Studio生成的代理类与SOAP Web服务进行通信。生成的类派生自System.Web.Services.Protocols.SoapHttpClientProtocol。我发现实例化类很昂贵,所以我正在考虑修改我的工厂方法以返回类的Singleton实例。根据{{​​3}},该类对于多线程是安全的。

有没有人有重用这些类的实例的经验?这样做是否有任何负面影响(即连接处于打开状态等)?

.NET Framework版本:2.0

2 个答案:

答案 0 :(得分:0)

应该没有理由在单例模式中使用这些类会导致问题,但是我正在努力解决你想要解决的问题。当你说这些类实例化你用它们比较的东西是昂贵的吗?与向Web服务发出http请求的成本相比,实例化代理类的成本应该可以忽略不计。你能解释一下情况/发布一些代码,证明你的性能瓶颈是通过实例化代理类引起的。

答案 1 :(得分:0)

我可以想象除了开销之外实例化代理单例的多种原因,我同意并不是很多。最大的原因是维持服务呼叫之间的会话。想象一下,具有多个页面的应用程序都使用相同的Web服务方法。 Web服务调用的会话通常通过在代理上设置cookie参数来执行:

proxy.CookieContainer = new System.Net.CookieContainer();

如果要为每个页面操作创建新代理,则会话将在页面之间丢失。创建所有页面使用的单例代理将解决此问题。

相关问题