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