2013-05-14 70 views
0

我有一個應用程序,用戶將連接到在其網絡中的計算機上運行的一個或多個WCF服務。由於這些連接的地址在安裝時未知,因此應用程序必須以編程方式連接到這些服務(即,我無法使用「添加服務參考」)。我使用下面的代碼連接工作:以編程方式更改WCF代理類的默認集合

string url = "...the url..."; 
BasicHttpBinding binding = new BasicHttpBinding();    
EndpointAddress address = new EndpointAddress(url); 
ILicenseService service = ChannelFactory<ILicenseService>.CreateChannel(binding, address); 

不過,我的一些服務類的成員返回元素的ObservableCollection。我知道如何使用高級設置來更改服務引用對話框中的集合類型。但是,我找不出一種方法來設置此值編程方式,以便我的客戶知道讀取返回類型爲ObservableCollection而不是列表。任何線索?

+0

那麼,你在ILicenseService的方法中返回什麼類型? – 2013-05-14 16:12:53

回答

0

它應該反序列化爲由服務類的接口或序列化對象的屬性的類型定義的類型。嘗試改變接口/類的集合類型。

順便說一下,你聲明你不能使用Add service reference,因爲在編譯時服務端點地址是未知的,但是這不應該阻止你使用它。獲取WSDL的副本並將其從本地WSDL文件導入Add service reference,然後在創建服務代理時指定實際的端點地址,如here所示。

+0

謝謝。除此之外,我還使用了您的評論:http://stackoverflow.com/questions/6119124/c-sharp-client-how-to-invoke-wsdl-file – 2013-05-14 19:00:13

相關問題