在Close
上一个方法ICommunicationObject
可以抛出两种类型的异常如MSDN概述这里.我理解为什么该Close
方法可以抛出这些异常,但我不明白为什么Dispose
服务代理上的Close
方法在没有try
它的情况下调用该方法.你的Dispose
方法不是你想要的地方,确保你没有抛出任何例外吗?
它似乎是.NET代码中的常见设计模式.这是框架设计指南的引用
如果close是区域中的标准术语,请考虑提供方法Close(),以及Dispose().这样做时,将Close实现与Dispose相同是很重要的...
这是一篇博客文章,您可以在其中找到此System.ServiceModel.ClientBase设计问题的解决方法
是的,通常Dispose是您希望确保不抛出异常的地方之一.但是,基于此MSDN 论坛帖子,这种行为有一些历史原因.因此,推荐的模式是try {Close}/catch {Abort}范例.