最初は、サービスを消費するクラスに ctor でそれらを渡す依存関係としてそれらを扱いました。
var serviceConsumer = new ServiceConsumer(new MailingServiceClient())
問題は、サービスから例外がスローされると、障害状態になり、要求に応答しないため、再初期化が必要だったことです。
さらに、生成されたプロキシの dispose メソッドが壊れている (障害状態をチェックせずに close を呼び出す) ため、wcf サービスが適切に破棄されない場合があるという事実に精通し、それを克服するいくつかの方法に遭遇しました。
テスト上の理由から、コンシューマ コードがサービス クライアントを自分で作成することを望まないので、私の質問は次のとおりです。
機能している障害のないサービスを維持するにはどうすればよいですか?
テスト容易性のために依存性注入を引き続き使用するにはどうすればよいですか?