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

有帮助吗?

解决方案

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

如果 close 是该领域的标准术语,除了 Dispose() 之外,还可以考虑提供 Close() 方法。这样做时,重要的是使 Close 实现与 Dispose 相同...

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

其他提示

是的,通常 Dispose 是您希望确保不引发异常的地方之一。然而,基于这个MSDN 论坛主题 这种行为有一些历史原因。因此,推荐的模式是 try{Close}/catch{Abort} 范例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top