在USING {}块中包装.NET WCF服务代理类?

时间:2010-09-21 15:17:40

标签: asp.net wcf web-services

快速提问,但最好将服务代理类包装在using语句中吗?意思是,在VS中,我们为WCF服务生成了一个代理。对于服务类,是否应该使用?我不相信它实现了IDisposable并且没有Dispose()方法。感谢。

1 个答案:

答案 0 :(得分:4)

虽然服务参考和svcutil.exe 生成的代理实现了IDisposable,但通常是将它们包装在{{}中的最佳做法1}}阻止;而是赞成明确的开放和结束。

为什么呢?好吧,问题是using方法调用Dispose可以在各种情况下抛出,如果频道处于故障状态,则最突出。一般来说这很糟糕,但是如果在finally块期间发生这种情况,因为你让故障异常冒出来,它可能会吞下原始故障异常而支持Close异常,从而有效地丢失了原始异常。