2010-07-15 82 views
0

我必須用WCF服務打包遺留的.net程序集API(一組類和接口)。服務被視爲代理服務器,可以將呼叫委託給現有的類,幾乎不需要額外的工作。WCF:打包傳統的API問題

所以我增加了[ServiceContract] interface,它公開了處理現有結構和類的方法。但是wcf-proxy-generator(svcutil)刪除了一些字段(聲明爲只讀),並且對別名來說不夠聰明(例如:public bool Boolean1 { get { return Booleans[0] }}變成bool Boolean1 { get; set; })。

我決定複製這些遺留類以消除混淆。現在有一些現有類的合同安全版本& WCF服務具有將合同安全類轉換爲傳統類的附加代碼&反之亦然。

你會建議複製所有遺留類嗎?還是隻有有問題的轉換纔可以?可能會有一些額外的代理生成器參數,我錯過了。

預先感謝您!

回答

1

代理不喜歡你的只讀屬性,因爲它需要序列化對象,如果不能調用setter並將序列化的值放回到對象中,就不能這樣做。

將您的舊類修改爲WCF友好會更容易,但通常這不是一個選項。您創建的用於從傳統類轉換爲WCF安全類的類似乎很好,但顯然不太理想,因爲您只是爲了將這些類與WCF一起使用而引入另一個層。

+0

最後,我不得不創建所有的wcf友好類和轉換爲傳統類層。 – 2010-07-18 15:03:29