如果配置是字符串,则使用new ChannelFactory(string)
本文关键字:TChannel ChannelFactory string new 配置 字符串 如果 | 更新日期: 2023-09-27 17:50:32
我想使用ChannelFactory为给定端点创建一个WCF客户端。
问题是我没有网。config或app.config,但我确实在字符串中有整个<system.serviceModel>
XML块。
当我已经有了配置时,我不想手动解析它并以编程方式创建绑定和端点。
是否有一种方法可以告诉ChannelFactory只是使用该块作为它的配置?或者至少创建一个ServiceEndpoint?
这篇博文中描述了一种技术。
它不像一行代码那么简单,但至少它在比原始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通道。