繁体   English   中英

一个具有不同 XSD/WSDL 版本的 WCF 服务

[英]One WCF Service with different XSD/WSDL versions

我有一个问题,我找不到一个好的解决方案。 也许有人可以帮助我。

有一个 WCF 服务,它是多年前创建的。 现在必须进行调整。 这是场景:

示例 WCF CarService.svc。 此 WCF 具有生成的 class CarV1.cs,它是从带有 svcutil.exe 的汽车 WSDL (v1) 创建的。 因此,这个 CarV1.cs 包含几个类和属性。 在 CarV1.cs 中还有一个接口 CarIdentification,它是在 CarService.svc.cs 中派生的。 到目前为止,一切都很好。 现在有新版本的汽车 WSDL (v2)。 我还使用 svcutil.exe 从 WSDL 生成了 class CarV2.cs。 现在我有两个 generate.cs(一个 v1 和一个 v2)。 rest除了一些调整(新的类和一些类已重命名)外,在v2中是相同的,即class名称和属性名称以及接口名称,都称为CarIdentification。

我的问题是两个版本都必须提供,我不知道如何将两者集成到 WCF 中。 由于两者具有相同的接口名称,这是派生的,而且许多类也具有相同的名称。 我可以复制整个解决方案,然后在 IIS 中提供版本 1 和版本 2。 但我想要两个版本都有 1 个 WCF。 我也可以使用多个端点,但如果大多数名称都相同,我该怎么做? 这有可能吗? 接下来是在 CarService.svc.cs 中有一个派生方法,该方法在接口中定义,并具有来自 CarV1.cs 的返回值。 CarV2 当然也有方法“GetDetails”,我无法解决它,因为它总是引用 CarV1。 我已经尝试使用 CarV2.GetDetails 解决该方法,但这不起作用。

我怎样才能明智地实施整个事情? 如果我不必调整访问服务的客户端应用程序,那将是一个优势。

谢谢

第一个问题是可以区分实现接口后创建的class参数。

第二个问题是,如果方法名相同,无法区分,也可以通过在同一个方法名中加入不同的参数来实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM