簡體   English   中英

WCF ChannelFactory.CreateChannel()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM