C# 可以在VisualStudio中使用WSDL自动生成代码

C# 可以在VisualStudio中使用WSDL自动生成代码,c#,visual-studio-2010,web-services,C#,Visual Studio 2010,Web Services,您好,我希望使用以下功能进行测试: 是否有更快的方法可以使用VisualStudio2010进行测试?我通常使用C。我只是想知道是否可以输入wsdl,并让VisualStudio自动生成一些代码来调用服务?谢谢 顺便问一下,“测试表单仅对来自本地计算机的请求可用”是什么意思?在url中?Visual studio可以为url引用的wsdl/webservice生成代码,即使它在本地计算机外部也是如此。但是,通过浏览器访问的测试表单只能在本地计算机(localhost)上访问 但您仍然可以通过其

您好,我希望使用以下功能进行测试:

是否有更快的方法可以使用VisualStudio2010进行测试?我通常使用C。我只是想知道是否可以输入wsdl,并让VisualStudio自动生成一些代码来调用服务?谢谢


顺便问一下,“测试表单仅对来自本地计算机的请求可用”是什么意思?在url中?

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


但您仍然可以通过其他工具(例如,internet)在internet上测试Web服务。这个工具对我在internet上测试Web服务很有用。

您可以做一些事情来生成代码。在我看来,第一个也是最简单的方法是创建一个指向该URL的服务引用。以下是一些屏幕截图:

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

输入asmx的URL(查询字符串中没有方法),为引用指定名称,然后单击“确定”:

这将生成进行呼叫所需的代理代码:

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

TerraService.TerraServiceSoapClient client = new TerraService
    .TerraServiceSoapClient("TerraServiceSoap");
string place = client.ConvertLonLatPtToNearestPlace(
    new TerraService.LonLatPt { Lat = 47.6532, Lon = -122.135479 });
第二种方法是使用VisualStudio附带的命令行
WSDL.exe
工具。启动visual studio命令提示符并键入
wsdl/?
。这将显示应用程序的参数。在我的例子中,我只是从中取出WSDL的副本,将其保存到我的桌面,然后运行以下命令:

wsdl /o:./terraservice.cs terraservice.wsdl
生成WSDL文件旁边的代理类

最后一件事。。。按照@Habibillah的建议,与soapUI成为最好的朋友。它是一个调用web服务而无需编写任何代码的极好工具


希望有帮助

在visual studio中创建webservice代理。“测试表单仅适用于来自本地计算机的请求。”意味着您无法在从本地主机以外的任何URL浏览时执行web方法。以防有人怀疑;屏幕2中的地址也可以是文件路径。