【问题标题】:Closing and Disposing a WCF Service关闭和释放 WCF 服务
【发布时间】:2010-09-06 15:15:30
【问题描述】:

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

【问题讨论】:

    标签: wcf web-services


    【解决方案1】:

    这似乎是 .NET 代码中的一种常见设计模式。这是来自Framework design guidelines的引用

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

    这里是blog post,您可以在其中找到此 System.ServiceModel.ClientBase 设计问题的解决方法

    【讨论】:

    • 当我添加服务参考时,在 VS 2008 中使用 WCF 代理生成器的代码是错误代码,因为处置(关闭)不是好的做法?
    【解决方案2】:

    是的,通常 Dispose 是您要确保不引发异常的地方之一。但是,基于此 MSDN forum thread,此行为有一些历史原因。因此,推荐的模式是 try{Close}/catch{Abort} 范例。

    【讨论】:

      猜你喜欢
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      相关资源
      最近更新 更多