可以在Visual Studio中使用WSDL自动生成代码

时间:2012-10-25 03:34:46

标签: c# visual-studio-2010 web-services

您好我希望使用测试以下功能: http://msrmaps.com/terraservice2.asmx?op=ConvertLonLatPtToNearestPlace

有没有更快的方法可以使用Visual Studio 2010测试它?我正常使用C#。我只是想知道是否可以输入wsdl,并让visual studio自动生成一些代码来调用服务?感谢。

顺便说一句,这是什么意思“测试表只适用于来自本地机器的请求。”在网址?

2 个答案:

答案 0 :(得分:12)

您可以执行一些操作来生成该代码。第一个也是最简单的方法(在我看来)是创建一个对该URL的服务引用。以下是一些截图:

右键单击您的项目,添加服务引用:

Right click on the project and choose to add a service reference

输入asmx的URL(不包含查询字符串中的方法),为引用指定名称并单击“确定”:

Enter the URL for the service

这将生成您拨打电话所需的代理码:

Notice the new service reference in the project

从那里,您可以使用该代理代码来调用Web服务:

TerraService.TerraServiceSoapClient client = new TerraService
    .TerraServiceSoapClient("TerraServiceSoap");
string place = client.ConvertLonLatPtToNearestPlace(
    new TerraService.LonLatPt { Lat = 47.6532, Lon = -122.135479 });

第二种方法是使用visual studio附带的命令行WSDL.exe工具。启动visual studio命令提示符并键入wsdl /?。这将显示应用程序的参数。就我而言,我只是从http://msrmaps.com/terraservice2.asmx?wsdl下载了一份WSDL副本,将其保存到我的桌面并运行命令:

wsdl /o:./terraservice.cs terraservice.wsdl

在我的WSDL文件旁边生成代理类。

最后一件事......正如@Habibillah建议的那样成为soapUI最好的朋友。它是调用Web服务的绝佳工具,无需编写任何代码。

希望有所帮助!

答案 1 :(得分:2)

Visual Studio可以为URL引用的wsdl / webservice生成代码,即使它在本地计算机外部也是如此。但是,浏览器访问的测试表单可以在本地计算机上访问(localhost)。

但您仍然可以通过其他工具(例如soapUI)在互联网上测试网络服务。这个工具对我来说可以通过互联网测试web服务。