我正在开发一个需要访问 Web 服务的 VB.Net 应用程序,我几乎可以肯定它有一个 C# 后端。至少,后端向我提供仅按大小写区分的类,并且在许多此类类中,存在仅按大小写区分的属性和方法。
VB.Net 不区分大小写,它认为其中许多项目不明确。
我已经想到了一些处理这个问题的方法,但在我走上一条可能很困难的路之前,我希望得到建议。
以下是我考虑过的一些方法。
修改为 wsdl 生成的代码。由于 xml 输出不再符合 web 服务要求,因此在响应中出现了问题。我认为可能有一些属性可以用来覆盖它,但我不确定它们是什么。即便如此,此 Web 服务仍会频繁更新,我不希望每次刷新时都必须重新修复该服务。
创建一个 csharp 包装器项目,我在其中公开具有不同名称的底层类。主要是通过继承。尽管这里的大问题是属性和方法的问题也仅按大小写区分。
我确信在某些时候我可以使这些解决方案中的一个或另一个起作用,但如果有人有任何我没有想到的更好的建议,我将不胜感激。
谢谢
最佳答案
如果 Web 服务是内部开发的,您需要查看公司的开发实践;特别是,确保所有公共(public) .NET API 都是 CLS compliant .
如果 Web 服务不是内部开发的,或者您无法对其进行更改(客户已经在使用它等),那么我会采用编写 C# 包装器库的方法,或者在至少将调用代码集中到新的(或现有的)业务层 C# 项目中。您很可能希望无论如何进行这种抽象,而不是直接从应用程序层调用 Web 方法。
关于c# - 如何在我的 VB.net 应用程序中处理来自 c# Web 服务的区分大小写的类和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6445684/