0

次の場合についていくつかの提案が必要です

プログラムでバインディング情報とエンドポイント情報を設定した後、サービスクライアントインスタンスを初期化する子メソッドがあります。インスタンスを保持する変数はクラスレベルで定義され、子メソッドはそれを新しいインスタンスに設定するだけです。コードレビューセッション中に、開発者は、インスタンスを子メソッドの引数として渡し、引数をメインメソッドに戻すことを提案しました。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;
}
4

1 に答える 1

1

適切なソリューションを提供するには、アプリケーションに関する知識がさらに必要だと思います。最善の方法は、コメントについて関係する開発者から理由を見つけることです。私は個人的にはそれに同意しません。ここに私がおそらくすることはほとんどありませんが。

親/呼び出しメソッドの場合:

using(ServiceClient client = InstantiateClient()){
//Make service call here
}

子メソッドでは、

private ServiceClient InstantiateClient()
{
    //do some configurations on bindings and endpoint 
    return new ServiceClient(bindingInfo, endpointInfo);
}

繰り返しますが、アプリケーションで意味がある場合は、InstantiateClientを次のように汎用メソッドにします。

private ClientBase<T> InstantiateClient(){
// create and return specific client here
}
于 2012-08-21T16:20:18.503 に答える