情况:
我们有一个图书馆项目,其中包含许多我们正在从事的各种集成的代码。许多集成消耗Web服务api,而我的主管不希望将5亿兆的Web服务引用添加到项目中。
然后,我们通常要做的是添加对新项目的引用,然后将References.vb复制到解决方案中,然后调用生成的代码。如果对服务进行了更改,并不是很方便,但是它可以工作。
最近,我遇到一个问题,我们必须使用3个Web服务进行相同的集成。其中两个包含相同的类定义,但是它们位于不同的 namespace 中,因为它们属于不同的服务。这对我来说是一个问题,因为其中一项服务根据用户ID搜索用户,而另一项服务则撤回用户块。两者都返回一个在语义上完全相同的对象或列表。无论数据来自一项服务还是另一项服务,我都需要处理相同的数据。
我的解决方案是剥离服务中的重复类,并将其替换为从通用基类继承的类。这使我可以像对待两个对象一样使用它们,但是,它需要修改生成的Web服务代理。因此,每次我需要重新生成代理时,都需要进行此更改。
我很好奇大家可能认为对此有更好的解决方案。
最佳答案
您会后悔通过复制Reference.vb和编辑生成的文件来玩游戏。
切换到WCF,您将能够告诉它要重用这些类型,而不是拥有或多或少相同的多个类型。
顺便说一句,如果在服务器更改后并非同时更新所有Web引用,它们将“不一样”。
关于web-services - 从多个Web服务处理相同的类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/448434/