次の場合についていくつかの提案が必要です
プログラムでバインディング情報とエンドポイント情報を設定した後、サービスクライアントインスタンスを初期化する子メソッドがあります。インスタンスを保持する変数はクラスレベルで定義され、子メソッドはそれを新しいインスタンスに設定するだけです。コードレビューセッション中に、開発者は、インスタンスを子メソッドの引数として渡し、引数をメインメソッドに戻すことを提案しました。Whisはこれを行うための最良の方法です
private void InstantiateClient()
{
//do some configurations on bindings and endpoint
_ClassLevelInstanceClient = new ServiceClient(bindingInfo, endpointInfo);
}
また
private ServiceClient InstantiateClient(ServiceClient myClientInstance)
{
//do some configurations on bindings and endpoint
myClientInstance = new ServiceClient(bindingInfo, endpointInfo);
return myClientInstance;
}