![](/img/trans.png)
[英]Does ChannelFactory.CreateChannel() actually open connection?
[英]WCF ChannelFactory.CreateChannel()
为什么我能够这样做:
var _channel = new ChannelFactory<T>("bindingname").CreateChannel();
但不是这个
var _channelFactory = new ChannelFactory<T>("bindingname");
var _channel = _channelFactory.CreateChannel();
第二个片段抱怨我需要在CreateChannel()
传递一个EndPointAddress
,而第一个则没有。
这两个片段基本上不一样吗?
这可能是因为var _channelFactory = new ChannelFactory<T>("bindingname");
正在将_channelFactory解析为IChannelFactory<T>
而不是ChannelFactory<T>
。
尝试
ChannelFactory<T> _channelFactory = new ChannelFactory<T>("bindingname");
var _channel = _channelFactory.CreateChannel();
ChannelFactory <T>有一个不带参数的CreateChannel()方法。 IChannelFactory <T>没有不带参数的CreateChannel()方法。
查看ChannelFactory的构造函数的签名,唯一一个将单个字符串作为输入的是请求endpointConfigurationName - 而不是绑定名称。 这可能是你问题的根源吗? 您可能错误地构建了ChannelFactory? 见下文:-
public ChannelFactory();
public ChannelFactory(Binding binding);
public ChannelFactory(ServiceEndpoint endpoint);
public ChannelFactory(string endpointConfigurationName);
protected ChannelFactory(Type channelType);
public ChannelFactory(Binding binding, EndpointAddress remoteAddress);
public ChannelFactory(Binding binding, string remoteAddress);
public ChannelFactory(string endpointConfigurationName, EndpointAddress remoteAddress);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.