从WSDL文件创buildVisual Studio中的Web服务代理

我的应用程序需要与尚未获得联机WSDL定义的Web服务进行通信。 然而,开发人员向我提供了一个WSDL文件。

使用公共WSDL Visual Studio可以使用Service Reference向导为我生成此代码。 但是如果没有公共的WSDL,这似乎不起作用。

如何使用此WSDL文件生成与此Web服务交谈的代码?

尝试使用WSDL.exe ,然后将生成的文件(.cs)包含到您的项目中。

启动Visual Studio命令提示符(在开始菜单中的visual studio / tools下),然后键入

>wsdl.exe [path To Your WSDL File] 

这将吐出一个文件,你复制/移动,并包括在您的项目。 该文件包含一个代理服务器的类,启动该类的一个实例,它将拥有一个可以即时设置的URL属性,以及一些可以调用的方法。 它还会为通过服务接口传递的所有/任何复杂对象生成类。

使用WSDL.exe并不适用于我(给我一个关于缺lesstypes的错误),但是我可以在VS中右键单击我的项目并select“添加服务引用”。 我在Address字段中input了wsdl文件的path,然后点击“Go”。 这似乎能够find所有适当的types,并直接添加到我的项目类。

在旁边注意:如果你有本地的所有文件(不仅wsdl文件,而且还有xsd文件),你可以以这种方式调用wsdl.exe:

 wsdl.exe [path to your wsdl file] [paths to xsd files imported by wsdl] 

这样wsdl.exe就可以在本地解决所有的依赖关系,并正确地生成代理类。

也许它会节省一些时间 – 它解决了服务不能在线提供“缺lesstypes”错误。

尝试.NET Framework SDK附带的WSDL To Proxy类工具 。 我从来没有使用过,但它看起来像你所需要的。

由于Web服务的真正绑定URL位于文件中,因此可以从本地计算机执行以下简单步骤:

1)将文件保存到本地计算机,例如:

 C:\Documents and Settings\[user]\Desktop\Webservice1.asmx 

2)在Visual Studio中右键单击您的项目>select添加Web引用,将打开一个对话框。

3)在URL框中复制C:\ Documents and Settings [user] \ Desktop \ Webservice1.asmx上方的本地文件位置,单击Next

4)现在你会看到function出现,select你的名字作为参考,点击添加参考

5)你完成了! 您可以开始在应用程序中使用它作为命名空间,不用担心使用本地文件,因为无论如何,服务的真实URL位于绑定部分的文件中