[英]Creating and consuming a web service to call a method with Visual Studio 2015 and c#
我是Web服務開發的新手。 我正在嘗試為應用程序創建一個后端(順便說一句,它是Windows 10通用應用程序)。 我想做的事情很簡單:我希望我的應用程序要求服務執行某項操作,然后該服務運行一些代碼並返回某些內容。 換句話說,我想從我的應用程序調用服務中定義的方法。
我已經找到了大量關於此的指南,但是它們全都可以追溯到2000年代初期,並且使用的技術現在已經過時了。
到目前為止,我設法做到了
我使用WCF服務模板(Visual C#、. Net框架4)創建了一個新網站(文件->新建->新網站),並向其中添加了一個Web服務ASMX(右鍵單擊project-> Add-> Add。 New Item-> Web Service(ASMX)),然后向與該Webservice關聯的.cs文件中添加了一些webmethod。
[WebMethod]
public void MyVoidFunction() { //Do something }
然后,在我的應用程序中,我向Web服務添加了一個服務引用(右鍵單擊引用->添加服務引用->插入本地主機地址,直至.asmx->單擊執行->分配名稱空間->單擊確定)。 現在,我可以使用Web服務在應用程序中執行以下操作:
ServiceReference1.WebServiceSoapClient obj = new ServiceReference1.WebServiceSoapClient();
await obj.MyVoidFunctionAsync();
請注意,當我在應用程序中添加引用時, ServiceReference1
是我分配給Web ServiceReference1
的名稱空間。
這實際上運行MyVoidFunction()
。 但是,我不能直接調用obj.MyVoidFunction()
方法,也不能調用非void函數並獲取它們的返回值。
問題
await
和自動生成的FunctionNameAsync()
方法? 您發現的文檔太舊了,因為Web服務實現的確很舊,並且沒有任何新聞。 如果要制作Windows 10應用程序,則應堅持使用新技術,並且應使用JSON API。 嘗試查找有關如何使用WebApi創建API的文檔,Azure提供了針對該產品的產品( http://azure.microsoft.com/zh-cn/services/api-management/ )。 在Windows 10應用中,使用HttpClient與NewtonSoft.Json一起使用此API來序列化和反序列化對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.