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 回答