2013-08-05 34 views
1

前一段時間,我通過this question here瞭解了「引用程序集中的重用類型」WCF選項。我們的目標是使用此選項在客戶端和服務器之間共享一組類庫;這些庫實現了我們的業務對象模型,暴露WCF服務的服務器和使用它們的客戶端都需要使用它們。我們正在使用.NET 4和Visual Studio 2010.是否需要[Serializable]重用WCF下引用的程序集中的類型?

我們運行一些測試場景,一切似乎都正常。但是,現在我們正在進行產品開發,我們發現WCF顯然需要將共享類標記爲可序列化。在我們的初步測試中,我們沒有將它們標記爲這樣,並且一切正常,所以我很困惑,爲什麼我們現在得到一個WCF錯誤,要求我們將它們標記爲可序列化。從我讀過的東西看來,它似乎與沒有無參數構造函數的類相關,但我不確定這一點。

我的問題是:我們需要使我們的共享類可序列化,還是有解決方法?是否有任何最佳實踐或衆所周知的策略來準備WCF設置中的客戶端和服務器之間共享的類庫?謝謝。

回答

0

另一種選擇是根本不使用WSDL,而是通過將它添加爲客戶端的引用來共享相同的dll。看看你的代理代碼(reference.cs)現在看起來如何。可能有特定的客戶端類(可從ClientBase繼承),您可以離開,但主代碼位於數據合同/可序列化類中,您可以通過添加dll參考獲取該類。

+0

我不確定我是否關注你。正如我在OP中所描述的,我們已經計劃通過將它添加爲客戶端的參考來共享相同的DLL。問題是,這種方法顯然需要將DLL中的類標記爲可序列化,因此也是我的問題。對此有何評論? – CesarGon

+0

http://jamesheppinstall.wordpress.com/2012/06/13/windows-communication-foundation-consuming-a-wcf-service-with-channelfactory/ –

相關問題