2014-09-02 96 views
0

我試圖在XML文件中序列化我的ObservableCollection<Memos>XML序列化Windows Phone 8

Memos類是這樣的:

[DataContract] 
public class Memos 
{ 
    [DataMember] 
    public string Date { get; set; } 

    [DataMember] 
    public string Event { get; set; } 

    public BitmapImage Photo { get; set; } 

    [DataMember] 
    public string Path { get; set; } 
    public Memos() { } 

    public static async Task<BitmapImage> LoadImage(StorageFile file) 
    { 
     //code 
    } 
} 

如果我離開了Photo領域,它工作正常。但我不明白爲什麼,因爲我沒有用[DataMember]屬性標記它。

我的代碼是這樣的:

using (var file = storage.CreateFile("Memos.xml")) 
{ 
    var serializer = new XmlSerializer(typeof(ObservableCollection<Memos>)); 
    serializer.Serialize(file, MainPage.ListMemos); 
} 
+0

我不認爲照片屬性是你的連載概率的原因。它不會給你任何可能的序列化檢查正確我認爲你正在犯另一個錯誤 – 2014-09-02 13:25:07

回答

1

嘗試,以紀念與XmlIgnore的財產,以防止它被序列化:

[XmlIgnore] 
public BitmapImage Photo { get; set; } 
+0

如果我們不使用XmlIgnore屬性仍然在工作 – 2014-09-02 13:26:52

+0

似乎有效。謝謝 – Krusty 2014-09-02 13:33:02

+0

@DhavalPatel類似'BitmapImage'的複雜類型有很小的機會可序列化,並且所有公共屬性都包含在序列化中,這就是爲什麼我們需要'XmlIgnore'屬性 – har07 2014-09-02 13:38:29