app.config的<client>
元素是什么?
为什么在添加服务引用时将其添加到客户端?
如何以编程方式访问此元素?
答案 0 :(得分:0)
它与WCF服务端的<service>
部分相对应。它主要用于配置用于将客户端和服务连接在一起的端点。换句话说,它表示连接到服务的位置以及要使用的绑定。
例如,如果您在IIS中托管了WCF服务,则可能包含以下部分:
<system.serviceModel>
<services>
<service name="MyService">
<endpoint address="http://localhost:8080/MEX" binding="mexHttpBinding" bindingConfiguration="" name="mex" contract="IMetadataExchange" />
<endpoint address="http://localhost:8111" binding="wsHttpBinding" bindingConfiguration="WS_HTTP_Secure" name="WS_HTTP_Endpoint" contract="IMyService" />
</service>
</services>
</system.serviceModel>
因此,在客户端,您将拥有<client>
部分的相应条目集,例如
<system.serviceModel>
<client>
<endpoint address="http://localhost:8111/" binding="wsHttpBinding"
bindingConfiguration="WS_HTTP_Endpoint_Binding" contract="MyService" name="WS_HTTP_Endpoint" />
</client>
</system.serviceModel>
通常不需要以编程方式访问此部分。将服务引用添加到项目中会将代理类添加到项目中,并且在使用这些类时,您可以指定要在其中使用的端点。例如,假设您将服务类称为“MyService”,您可以将其初始化为:
MyServicesClient client = new MyServicesClient("WS_HTTP_Endpoint");
除非你有多个端点,否则不需要像这样在构造函数中实际指定它。
答案 1 :(得分:0)
通过添加对System.Configuration
程序集的引用,您还可以根据需要将<client>
部分加载到内存中,并在那里进行检查:
using System.Configuration;
using System.ServiceModel.Configuration;
.....
ClientSection clientSection =
(ClientSection)ConfigurationManager.GetSection("system.serviceModel/client");
但通常情况下,您只会使用Gavin Schultz描述的方法 - 让ServiceModel处理该部分的读取和解释,并为您提供一个客户端代理来调用您的服务。
马克