簡體   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