【问题标题】:What does "Add Service Reference" really do?“添加服务参考”的真正作用是什么?
【发布时间】:2014-10-25 03:02:01
【问题描述】:
如果问题不连贯,请见谅。
我发现 WCF 真的很复杂。此外,做同一件事的不同方法会让初学者更加困惑,比如硬编码主机 vs 配置文件,或者硬编码客户端 vs 添加服务引用。 (我感觉对吗?)
我认为尝试以原始方式使用代码完成该过程会很有帮助。没有服务参考,没有配置文件。
也许我可以这样说:如果服务在另一台机器上运行(或者我的机器假装另一台机器),除了地址之外它必须提供的最低限度的东西供某人使用它?
以及如何通过代码使用它?
【问题讨论】:
标签:
c#
wcf
rest
soap
message
【解决方案1】:
添加服务引用解析服务的 WSDL,以将服务合同以及可能引用的任何域类型导入客户端的表示(在本例中为 C#)。它生成一个代理,该代理公开一个代表服务合同的 C# 接口。代理是一个命名空间和一组类,其中包含为特定端点调用每个服务方法的方法。
简而言之,它采用服务合同元数据并将其具体化为 C#。
您也可以使用 'svcutil.exe' 手动生成代理
svcutil http://server.com/FooService/FooService.svc /out:FooProxy.cs
或者也包括 app.config 的生成
svcutil http://server.com/FooService /out:FooProxy.cs /config:App.config
Visual Studio“添加服务引用”会为您完成这项工作,并将新文件添加到您的项目中。