需要对以下案例提出一些建议
我有一个子方法,在以编程方式设置绑定信息和端点信息后初始化服务客户端实例。保存实例的变量在类级别定义,而子方法只是将其设置为新实例。 在代码审查会话期间,开发人员建议我们将实例作为子方法的参数传递,并将参数返回给main方法。这是最好的方法
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;
}
答案 0 :(得分: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
}