簡體   English   中英

的ChannelFactory <T> 沒有界面

[英]ChannelFactory<T> without interface

我目前正在嘗試創建一個調用WCF SOAP服務的REST代理,但是我試圖建立一個通道來發送消息。 我知道我需要使用ChannelFactory,但是我沒有該服務的接口。 我可以通過默認值嗎? 還有另一種打包消息的方法嗎?

當我說消息時,我指的是ServiceModels.Channels.Message中的一個。

我對此很陌生,因此不勝感激。

您可以通過以下兩種方式之一從WSDL服務合同生成WCF客戶端

兩種方式都將生成與服務協定公開的類型相對應的.NET類以及WCF客戶端代理類 ,您可以使用它們來調用服務操作:

try
{
    var client = new MyServiceClient();
    client.DoSomething();
    client.Close();
}
catch
{
    if (client != null)
    {
         client.Abort();
    }
}

如果您喜歡使用較低級別的ChannelFactory API ,則應改用生成的IClientChannel接口:

try
{
    var factory = new ChannelFactory<MyServiceChannel>();
    var client = factory.CreateChannel();
    client.DoSomething();
    client.Close();
}
catch
{
    if (client != null)
    {
         client.Abort();
    }
}

ChannelFactory.CreateChannel創建一個對象,該對象實現提供的接口和IClientChannel 該接口必須與服務匹配。

您不需要該服務使用的相同DLL。 您可以創建自己的接口以匹配服務的定義。 ServiceContract屬性中,將Name和Namespace設置為與服務匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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