2011-04-08 44 views
1

我用DataContractSerializer來保存用戶數據,但現在我想使用DataContext來進行我的數據庫設計。 但系統存在結構如下,不能通過DataContext存儲。如何通過DataContext存儲用戶定義的數據類型?

class Data 
{ 
    public DataType1; 
    public DataType2; 
} 

看來這些APIs不能支持存儲用戶定義的數據類型。 我不想分開所有的數據成員,因爲這個系統在每個地方使用這些結構。如果我更改了結構,則很難維護,DataType1包含List成員。即使分開 這個結構我也不知道該怎麼做。

您能否請給我一些建議? 謝謝。

回答

0

看來這些API不支持存儲用戶定義的數據類型

如果真是這樣的API是完全沒有目的。

DataContractSerializer似乎有衝突的規則,試圖使序列化更隱含。例如,您可以序列化一個具有公共屬性和公共默認構造函數的公共類型,而無需使用DataContract屬性或其任何具有DataMember屬性的成員修飾它。

在我看來,至少你需要讓Data成爲公共課。很可能你需要檢查你的其他類,以確保它們可以隱式地序列化,或者你明確地用DataContractDataMember屬性標記它們。

0

親愛的所有: 但現在我用DataContext

的DataContext無法序列的用戶定義類型甚至標記爲[序列化]。

解決方法似乎所有成員分成現在一個班.....

感謝。

+0

Silverlight不支持與[Serializable]屬性關聯的典型.NET序列化。它也不支持Linq-To-SQL DataContext的東西。 XML的生成需要與「DataContractSerialisation」兼容,請參閱我的答案。 – AnthonyWJones 2011-04-08 08:09:53

相關問題