2010-01-11 83 views
1

我們發佈了一個必須與.NET 2.0兼容的類庫。但是,我們也想在內部使用這個類庫來執行基於WCF的項目。擴展用於WCF的.NET 2.0類庫

讀取例如expose-object-from-class-library-using-wcf通過創建DataContractSurrogate對象來映射2.0類提供了一種使用2.0類庫的方法。但是,我們的對象層次是豐富而深刻的,這將是乏味和難以維護的。

由於我們確實控制源代碼,所以我正在尋找一種更簡單的方法。

一個想法是將DataConract屬性添加到源代碼中,並在解決方案構建爲2.0運行時時提供DataContractAttribute的「空白」實現,並在構建解決方案時使用System.Runtime.Serialization實現瞄準3.0和更新的運行時。這可以通過手動調整構建之間的引用來完成。

有沒有更好的方法來實現這種方法?

有沒有更好的方法?

回答

1

它添加WCF屬性(DataContractAttribute等),並與.NET 3.0程序集一起構建的替代方法。

當您在.NET 2.0下運行應用程序時,從運行時不可用的程序集中獲取屬性通常不會導致問題。

(如果您實際嘗試訪問屬性,則會出現錯誤,但這不太可能且很容易避免)。

0

您可以通過代碼生成實現您的目標,或者在Visual Studio中提供T4模板。另一方面,我不確定是否可以用T4調整visual studio項目文件。 另一個可能的減號是T4腳本比純cs文件更乏味的調試。