这两种使用WCF服务的方式,哪一种更好?为什么?
- 从服务引用中生成代理
- 使用ChannelFactory
例如:
ChannelFactory<IMyContract> factory = new ChannelFactory<IMyContract>();
IMyContract proxy1 = factory.CreateChannel();
proxy1.MyMethod();
像这样调用WCF服务有点无聊。
IMyContract proxy1 = null;
try
{
proxy1 = factory.CreateChannel();
proxy1.MyMethod();
((ICommunicationObject)proxy1).Close();
}
catch
{
((ICommunicationObject)proxy1).Abort();
}
我们应该为每个代理调用重复这个代码片段吗?还是有一种通用的方法来创建一个包装类来关闭和中止代理?
编写像这样的类
ServiceExecution.Execute(proxy=>proxy.MyMethod());
是否是创建代理,并关闭或中止它的好方法?