【问题标题】:How to consume WCF services without svcutil.exe?如何在没有 svcutil.exe 的情况下使用 WCF 服务?
【发布时间】:2011-01-06 16:25:24
【问题描述】:

在没有svcutil.exe 的帮助的情况下,我发现了两种使用 WCF 服务的方法:

  • ClientBase<IService>
  • ChannelFactory<IService>

我知道ClientBase 可能使用ChannelFactory。但我说的是在写作之间做出选择:

public sealed class ServiceClient 
    : ClientBase<IService>, IService
{
    ReturnType IService.MethodName(ParameterType parameterName)
    {
        return Channel.MethodName(parameterName);
    }
}

// later
IService client = new ServiceClient();
var result = client.MethodName(parameterName);

ChannelFactory<IMyService> channelFactory = new ChannelFactory<IMyService>();
channelFactory.Open();

var channel = channelFactory.CreateChannel(); 
var result = channel .MethodName(parameterName);

channelFactory.Close();

我应该选择哪一个?

【问题讨论】:

    标签: c# .net wcf client channelfactory


    【解决方案1】:

    您的选择标准是什么?

    最终,这两种方法都可以正常工作,并且基本上可以得到相同的结果。

    您希望根据什么做出决定?

    我的建议:选择你觉得更舒服的风格!使用ChannelFactory&lt;IService&gt; 的方法可能需要您编写越来越少的普通代码 - 所以也许这对这种方法来说有点优势。

    这两种方法都要求您在通道的两端都有 .NET,并且服务和客户端与其中的服务和操作合同共享一个公共程序集 - 因为客户端必须至少知道服务接口才能成为能够使用两种连接服务的方式中的任何一种。

    【讨论】:

      猜你喜欢
      • 2012-04-20
      • 1970-01-01
      • 2012-10-22
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多