Skip to main content
 首页 » 编程设计

c#之Web 服务代理类与原始类的类引用冲突

2024年02月03日26unruledboy

基本上,这是经过更多研究后发生的事情。

如果我尝试在我的测试 Web 项目代码中的任何地方使用某个 Web 服务方法返回的类型,例如在代码隐藏中,我会遇到命名空间冲突,因为现在 Web 项目看到了 2 个不同的定义。一个作为我的 Web 服务引用命名空间中的代理类,然后是定义它的引用项目中的原始类定义及其命名空间

那么如何克服这一点呢?我已经尝试转换到最初定义该类的命名空间,但没有成功,我不断收到错误消息,说它无法转换到那个。

我也试过在通话中进行类型转换,但没有成功。

观看我点击的这段视频,为您提供代码的更多详细信息:http://www.elbalazo.net/Post/WebServiceProxyClassIssue.mp4 (一定要按播放..如果使用quicktime观看此mp4,它不会自动启动)

请您参考如下方法:

你不能做你想做的事。马上停下来。 ASMX 网络服务没有此功能。期间,仅此而已。他们从来没有这个功能,他们永远不会有这个功能。

此缺失已在 WCF 中得到纠正。


你问人们如何使用网络服务(很好,谢谢,大约十年了)。作为学习练习,我不会马上给出完整的答案。相反,我会问您如何从 Java 客户端调用 Web 服务?

更妙的是,您从未听说过的客户如何使用您从未听说过的编程语言调用该服务?


答案是他们会使用代理类。参见 Basics: How Web Services Work有关详细信息,但简而言之,使用该服务的客户端将只能看到 WSDL。 WSDL 根据 XML 模式而不是 .NET 类型描述服务。


之前的评论提到您的老板认为 WCF 太过分了。把他指向 Microsoft says: ASMX Web Services are a “Legacy Technology”并告诉他 WCF 并不过分 - 它是 ASMX 的替代品。