Close上的方法ICommunicationObject可以抛出两种类型的异常如MSDN概述这里 我理解为什么Close方法可以抛出这些异常,但我不明白为什么服务代理上的Dispose方法调用Close方法而不try 你的Dispose方法不是你想要的地方,确保你没有抛出任何例外吗?

===============>>#1 票数:9 已采纳

它似乎是.NET代码中的常见设计模式。 这是框架设计指南的引用

如果close是区域中的标准术语,请考虑提供方法Close(),以及Dispose()。 这样做时,将Close实现与Dispose相同是很重要的...

这是一篇博客文章 ,您可以在其中找到此System.ServiceModel.ClientBase设计问题的解决方法

===============>>#2 票数:9

是的,通常Dispose是您希望确保不会抛出异常的地方之一。 但是,基于此MSDN 论坛帖子 ,这种行为有一些历史原因。 因此,推荐的模式是try {Close} / catch {Abort}范例。

  ask by Esteban Araya translate from so

未解决问题?本站智能推荐: