使用wcf服务这两种方式中的哪一种更好?为什么?
恩.
ChannelFactory<IMyContract> factory = new ChannelFactory<IMyContract>();
IMyContract proxy1 = factory.CreateChannel();
proxy1.MyMethod();
Run Code Online (Sandbox Code Playgroud)
像这样调用wcf服务有点无聊
IMyContract proxy1 = null;
try
{
proxy1 = factory.CreateChannel();
proxy1.MyMethod();
((ICommunicationObject)proxy1).Close();
}
catch
{
((ICommunicationObject)proxy1).Abort();
}
Run Code Online (Sandbox Code Playgroud)
我们是否应该为每个代理呼叫重复此片段?或者是否有通用的方法来创建一个用于关闭和中止代理的包装类?
写这样的类ServiceExecution.Execute(proxy=>proxy.MyMethod());创建代理,并关闭或中止它这样做的好方法?