14

上のCloseメソッドは、 MSDN の概要がここICommunicationObjectにあるように、2 種類の例外をスローできます。メソッドがこれらの例外をスローする理由は理解できますが、サービス プロキシのメソッドが周囲のメソッドなしでメソッドを呼び出す理由は理解できません。あなたのメソッドは、例外をスローしないようにしたい唯一の場所ではありませんか?CloseDisposeClosetryDispose

4

2 に答える 2

9

これは、.NETコードの一般的なデザインパターンのようです。フレームワークの設計ガイドラインからの引用です

closeがその領域の標準的な用語である場合は、Dispose()に加えてメソッドClose()を提供することを検討してください。その際、Closeの実装をDisposeと同じにすることが重要です...

これは、このSystem.ServiceModel.ClientBase設計の問題の回避策を見つけることができるブログ投稿です。

于 2008-08-23T16:19:56.747 に答える
9

はい、通常、Dispose は、例外がスローされないようにする必要がある場所の 1 つです。ただし、この MSDNフォーラム スレッドに基づくと、この動作にはいくつかの歴史的な理由がありました。したがって、推奨されるパターンは、try{Close}/catch{Abort} パラダイムです。

于 2008-08-31T02:05:27.593 に答える