簡體   English   中英

創建和使用Web服務以使用Visual Studio 2015和C#調用方法

[英]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函數並獲取它們的返回值。

問題

  • 我應該如何創建Web服務? asmx是我需要做的正確模板嗎? 如果沒有,有人可以提供有關此操作方法的文檔,因為我發現的所有內容都涉及asmx,並且可以追溯到2010年之前。
  • 有什么方法可以直接調用我的Web服務中定義的方法,而無需使用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.

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