2014-03-27 14 views
0

我正在使用來自Java服務器的web服務。 webservice爲我提供了一些所需的方法。到目前爲止,我一直在使用在項目瀏覽器中添加webservice的引用的方法,輸入webservice的地址並編譯它。但現在我需要它從xml文件或其他東西中獲取運行時服務的地址!那可能嗎?c#:如何在編譯時使用其地址未知的webservice方法

回答

2

生成的代理對象中有Url屬性,您可以在運行時設置它。涵蓋在Creating the Web Service Proxy MSDN上的文章。從文章

樣品(演示如何還成立憑據,您可能還需要設置Proxy):

var rs = new ReportExecutionService(); 
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"; 
rs.Credentials = System.Net.CredentialCache.DefaultCredentials; 

需要注意的是上面的回答是情況下,當你不知道服務器的確切地址,直到運行時,但是您可以在設計時使用WSDL /樣本服務器,並且可以通過在VS(或手動)中添加Web服務來生成代理。

或者,您可以通過其他實現「HTTP GET」的類來調用服務,如HttpClient,並配置您想要的任何內容,但需要自行解析結果。

+0

我不願意自己解析。它將不成比例地打破難題。該項目不值得。我只想能夠在運行時指定wsdl的URL。這不容易嗎? –

+0

@ Marci男人 - 我想我完全誤解了你的問題 - 你可能想澄清你的問題。你是否試圖在編譯時調用你一無所知的服務,並在編寫代碼時以某種方式使用結果代理? (我的答案是,當你直到運行時才知道服務器的確切網址,但你在設計時有WSDL/sampe服務器) –

+0

好吧,我想你已經明白了。我在編譯時有一個wsdl,但我沒有在編譯時提供SOAP服務的服務器。我希望能夠在編譯時提供服務器的地址。 –

相關問題