繁体   English   中英

如何在没有svcutil.exe的情况下使用WCF服务?

[英]How to consume WCF services without svcutil.exe?

在没有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();

我应该选择哪一个?

您选择的标准是什么?

从功能上来说,两种方法最终都能正常工作,基本上可以给你相同的结果。

你想做什么决定?

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

这两种方法都要求您在通道的两端都安装.NET,并且该服务和客户端共享一个包含服务和操作合同的公共程序集 - 因为客户端必须至少知道服务接口才能使用连接服务的两种方式之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM