如果配置是字符串,则使用new ChannelFactory(string)

本文关键字:TChannel ChannelFactory string new 配置 字符串 如果 | 更新日期: 2023-09-27 17:50:32

我想使用ChannelFactory为给定端点创建一个WCF客户端。

问题是我没有网。config或app.config,但我确实在字符串中有整个<system.serviceModel> XML块。

当我已经有了配置时,我不想手动解析它并以编程方式创建绑定和端点。

是否有一种方法可以告诉ChannelFactory只是使用该块作为它的配置?或者至少创建一个ServiceEndpoint?

如果配置是字符串,则使用new ChannelFactory<TChannel>(string)

这篇博文中描述了一种技术。

它不像一行代码那么简单,但至少它在比原始XML更高的级别上工作。

您可以手动创建绑定和端点地址来创建CHannelFactory的实例,如:

   BasicHttpBinding binding = new BasicHttpBinding() { 
       Name = "Bindingname"
       // Goes all the necessary members to set.
   };
   EndpointAddress endpoint = new EndpointAddress("http://serviceendpoint.com");
   ChannelFactory<IContract> factory = new ChannelFactory<IContract>(binding, endpoint);

然后你可以尝试使用factory.CreateChannel()在你的ServiceEnpoint, Behaviors等之前探索它的成员

希望对你有帮助,谢谢。

找到了一个更好的解决方案:ConfigurationChannelFactory<TChannel>允许从自定义配置创建WCF通道。