2010-08-02 70 views
1

我可以序列化POCO類嗎?我正在使用C#POCO實體生成器。序列化POCO實體

我試圖編輯生成實體類以添加Serializable屬性的.tt文件。這樣對嗎?

回答

2

您使用的是POCO代理,而不是純粹的POCO。如果(顯然)它們是可序列化的,純POCOs可以被序列化。代理可能不是。

+0

如果我使用ADO.NET POCO實體生成器生成POCO實體,如何序列化POCO?當我將上下文的ProxyCreationEnabled屬性設置爲false時,代理創建功能已被禁用,因此我確信我沒有使用這些代理。 – jean27 2010-08-03 05:29:37

+1

您可以隨時序列化真實的POCO。如果您使用的代理不是真正的POCO,那麼您應該投射到真正的POCO上。我通常在序列化之前投射到匿名類型上,因爲這保證了沒有循環引用,無論如何通常會終止序列化。 – 2010-08-03 13:07:00

+0

嗨克雷格!之後你如何設計匿名類型?我也有問題的循環引用,然後想到我們的匿名類型的方法,但我不知道如何反序列化他們......你能舉個例子嗎?非常感謝! – 2011-01-14 12:44:24

1

我們無法承受禁用ProxyCreation(顯而易見的解決方案)。相反,我們使用Value Injecter來解決它。這很簡單:

var dynamicProxyMember = _repository.FindOne<Member>(m=>m.Id = 1); 
var member = new Member().InjectFrom(dynamicProxyMember) as Member; 

享受!