Wcf 如何从.net中的WSDL文件创建代理类

Wcf 如何从.net中的WSDL文件创建代理类,wcf,Wcf,我必须使用WSDL文件来创建代理类。 为此,我创建了一个简单的服务,并获得了相同的WSDL,并使用Internet Explorer中的另存为…将其保存到磁盘中。(我希望我在这里做得很好) 通过上面的过程,我得到了WSDL文件 如果我使用以下命令: D:\Ashok>wsdl CalculatorService.wsdl 我得到如下所示的一些错误: 错误:无法导入绑定“BasicHttpBinding\u ICalculatorService” 从名称空间“”。 -无法导入操作“添加”。

我必须使用WSDL文件来创建代理类。 为此,我创建了一个简单的服务,并获得了相同的WSDL,并使用Internet Explorer中的另存为…将其保存到磁盘中。(我希望我在这里做得很好)

通过上面的过程,我得到了WSDL文件

如果我使用以下命令:

D:\Ashok>wsdl CalculatorService.wsdl
我得到如下所示的一些错误:

错误:无法导入绑定“BasicHttpBinding\u ICalculatorService” 从名称空间“”。 -无法导入操作“添加”。 -缺少元素“”

我在谷歌上搜索过同样的内容,知道我需要做一些配置设置,但我不知道我到底需要做什么。


谁能推荐我一下吗

添加服务引用并将其指向WSDL

编辑 由于无法使用添加服务引用。。。
结束编辑

如果仔细查看WSDL,可以看到它内部是如何包含类似于以下内容的:

<s:import schemaLocation="http://..." />


这意味着这个WSDL不是一个独立的文件,但它依赖于其他一些文件(这就是WCF决定公开WSDL的方式)。因此,要么将所有其他文件保存在磁盘上(并更改schemaLocation以反映它们的当前位置),这很难,因为您需要多次这样做。或者找一份工作。或者使用VS.

中的“添加服务引用”,我更喜欢从WSDL文件生成代理。在我的例子中,生成此代理的命令行如下所示:

wsdl /sharetypes file://D:/WSDLs/General.wsdl file:///D:/WSDLs/CalculatorService.wsdl /out:d:\ServiceProxies.cs /n:AssemblyName

更新:您可以在下一篇文章中阅读更多信息-

您好,谢谢您的回复。我想使用“wsdl”命令生成代理类。由于一些限制,我不应该使用“添加服务引用”,如果您有限制,那么您应该告诉我们它们是什么。总的来说,
wsdl.exe
是个坏主意。什么原因导致了否决票?可能是重复的是的,你是对的。我混合了链接(现在已更正)。或者您对命令行有什么意见?