2013-12-15 38 views
0

我有2個類正在序列化以保存數據。如何在xml反序列化過程中執行操作

[Serializable] 
public class Album 
{ 

    private string nom; 
    [XmlElement] 
    public string Nom 
    { 
     get { return nom; } 
     set { nom = value; } 
    } 

    private List<Photo> photos = new List<Photo>(); 
    [XmlArray] 
    public List<Photo> Photos 
    { 
     get { return photos; } 
     set { photos = value; } 
    } 
... 
} 

和一些照片:

[Serializable] 
public class Photo 
{ 
    private string nom; 
    [XmlElement] 
    public string Nom 
    { 
     get { return nom; } 
     set { nom = value; } 
    } 

    private string path; 
    [XmlElement] 
    public string Path 
    { 
     get { return path; } 
     set { path = value; } 
    } 

    private Image image; 
    [XmlIgnore] 
    public Image Image 
    { 
     get { return image; } 
     set { image = value; } 
    } 
... 
} 

正如你所看到的,我不是序列化的位圖圖像。但是,當我反序列化我的XML時,我想要在同一時間構造Bitmap對象。

一個解決方案是在反序列化之後創建一個帶有循環的位圖圖像,但我認爲有一個正確的方法。

你能幫我嗎?

回答

0

將圖像創建邏輯放在setter of Path屬性中。將爲每個反序列化的對象調用Setter。

[XmlElement] 
public string Path 
{ 
    get { return path; } 
    set 
    { 
     path = value; 
     // Image creation logic here 
    } 
} 
+1

正是我在找的東西,坦克你! – thibon

+0

歡迎您。 –