gpt4 book ai didi

c# - 生成 wcf 代理与 ChannelFactory

转载 作者:太空狗 更新时间:2023-10-29 23:04:00 25 4
gpt4 key购买 nike

这两种使用wcf服务的方式哪种更好?为什么?

  1. 从服务引用生成代理
  2. 使用 ChannelFactory

例如

ChannelFactory<IMyContract> factory = new ChannelFactory<IMyContract>();
IMyContract proxy1 = factory.CreateChannel();
proxy1.MyMethod();

so这样调用wcf服务有点无聊

IMyContract proxy1 = null; 
try
{
proxy1 = factory.CreateChannel();
proxy1.MyMethod();
((ICommunicationObject)proxy1).Close();
}
catch
{
((ICommunicationObject)proxy1).Abort();
}

我们应该为每个代理调用重复这个片段吗?或者是否有通用的方法来创建用于关闭和中止代理的包装类?

像这样编写类 ServiceExecution.Execute(proxy=>proxy.MyMethod()); 是创建代理并关闭或中止它的好方法吗?

最佳答案

Here是 MSDN 帖子,建议不要在 .Net 3 中使用生成的代理,因为它每次都会创建 ChanelFactory,缓存 .Net 3.5 ChanelFactory。

但我个人更喜欢自己使用 ChanelFactory,生成的代码总是很痛苦,即使在 partials 出来之后也是如此

关于c# - 生成 wcf 代理与 ChannelFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com