2011-08-16 46 views
1

這些對象類型的ICollection集合<>實體框架T4 POCO對象在WCF提高例外

如果我通過從客戶端到服務器的對象圖,它拋出以下異常:

System.NotSupportedException was unhandled by user code 
    Message=Collection was of a fixed size. 
    Source=mscorlib 

哪個發生在T4模板生成的修復代碼中。看來這些集合正在服務器上作爲數組進行反序列化,因此無法修改。有沒有一種方法來指定序列化器應該使用的類型?

回答

5

我會強烈建議您不要使用POCO您的服務範圍內的課程。創建一組單獨的類來模擬想要通過線路發送和接收的數據(數據傳輸對象 - DTO),並使用如automapper這樣的工具在DTO和POCO類之間移動數據

本質上,您最終會將服務的消費者與服務的內部概念模型相關聯,這意味着您在更改實施時受到限制,因爲您需要避免打破客戶服務

+0

我認爲您是對的。這只是我嘗試將域模型一直貫穿到服務層的問題之一。還有像我不想公開的外鍵等屬性以及其他問題。所以謝謝你的建議。 – user380689

2

嘗試使用下面的屬性

[ServiceKnownType(typeof(List<string>))] 

如果不工作,也許嘗試使用IList<T>如果這是在您的情況可能