2009-10-27 126 views
1

我正在使用Linq-To-Sql的應用程序的審覈日誌。我想序列化一個對象以將其值存儲在SQL Server數據庫的XML列中。Linq-to-Sql對象的XML序列化?

我的問題是,當我嘗試序列化Linq-To-Sql obejct時,它試圖序列化所有關聯的實體和實體集。

我的解決方案的第一次嘗試是創建單獨的類tos撕裂我需要序列化,然後將其傳遞給XmlSerializer。

我想我真正想知道的是如何讓XmlSerializer忽略某些類型的屬性 - 例如實體和實體集。

我必須編寫自己的XmlSerializer嗎?

所有和任何建議將被折扣。

回答

1

您需要使用DataContractSerializer,但這仍然會序列化部分對象圖。

更好的解決方案是生成自己的Linq2SQL類並應用XmlIgnore/DataMember屬性(取決於您使用的是XmlSerializer還是DataContractSerializer)。

+0

+1是的,使用DataContractSerializer ...示例:http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/73e82932-d41c-4e51-a91a-704aead00526 – KristoferA 2009-10-27 11:29:44

+0

小心'DataContractSerializer'不會對作爲對象實現一部分的字段進行序列化。它對.NET 3.5中的實體框架類型這樣做,我認爲我看到它對L2S也是如此。 – 2009-10-28 01:43:53