【问题标题】:Generate proxy object based on wsdl file dynamically in code代码中基于wsdl文件动态生成代理对象
【发布时间】:2011-12-19 18:47:34
【问题描述】:

您好,可以在代码中动态地从 wsdl 文件生成代理对象吗?

我知道我可以使用工具 wsdl.exe,但我希望有一个选项可以根据 URL 下载 wsdl 并在代码中生成代理对象。

客户端使用 C#,Web 服务使用 Java。

【问题讨论】:

  • WSDL.exe 是一个 .NET 程序集,您是否尝试将其放入 Reflector 或 ILSpy 以了解它是如何发挥作用的?
  • @M.Babcock 也许 .NET 框架为此目的有自己的类,不需要拆卸 wsdl.exe。
  • 也许吧,但如果 google 还没有告诉你并且你无法弄清楚,那么 wsdl.exe 将是一个很好的起点......
  • wsdl.exe 不是 是一个很好的起点。它基于传统的 ASMX 技术,不应用于新开发。应该改用 WCF 和 svcutil.exe。

标签: c# web-services soap proxy wsdl


【解决方案1】:

Wsdl.exe 使用 System.Xml 和 System.Web.Services 中的框架类来发挥它的魔力。然而,这些类是晦涩难懂的,使用 Google 搜索很难找到,除非您特别知道类名本身。

一个好主意是查看 Mono 的 wsdl.exe 源代码:http://c-cpp.r3dcode.com/files/mono/2/10.2/mcs/tools/wsdl/MonoWSDL2.cs

这将帮助您生成存根代码。

编辑:John 认为 asmx 是遗留的,而 svcutil 是要走的路。如果你问我,SOAP 本身是遗留的,而 REST 是要走的路。但是由于问题是关于 SOAP 并且 svcutil 被认为是一种更好的技术,因此 svcutil 的工作原理如下:

http://c-cpp.r3dcode.com/files/mono/2/10.2/mcs/tools/svcutil/Driver.cs.

【讨论】:

  • -1:这将基于旧技术生成代理代码,不应将其用于新开发。
猜你喜欢
  • 1970-01-01
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
相关资源
最近更新 更多