質問
の Close
のメソッド ICommunicationObject
MSDN の概要として 2 種類の例外をスローできます ここ. 。理由はわかりました Close
メソッドはこれらの例外をスローできますが、理解できないのは、なぜ Dispose
サービス プロキシ上のメソッドは、 Close
を使わない方法 try
その周りに。あなたではありませんか Dispose
メソッドで例外をスローしないようにしたい場所は 1 つだけですか?
解決
これは、.NET コードにおける一般的な設計パターンのようです。ここからの引用です フレームワーク設計ガイドライン
close がこの分野の標準用語である場合は、Dispose() に加えて Close() メソッドを提供することを検討してください。その際、Close 実装を Dispose と同じにすることが重要です。
がここにあります ブログ投稿 この System.ServiceModel.ClientBase 設計問題の回避策を見つけることができます。
他のヒント
はい、通常、Dispose は例外がスローされないようにする場所の 1 つです。ただし、このMSDNに基づいて、 フォーラムのスレッド この動作には歴史的な理由がいくつかありました。したがって、推奨されるパターンは、try{Close}/catch{Abort} パラダイムです。
所属していません StackOverflow