【问题标题】:How to perform operation during xml deserializationxml反序列化时如何进行操作
【发布时间】:2013-12-15 17:15:00
【问题描述】:

我有 2 个类要序列化以保存数据。

[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 对象。

一个解决方案是在反序列化后使用循环创建位图图像,但我认为有一个适当的方法。

你能帮帮我吗?

【问题讨论】:

    标签: c# serialization deserialization


    【解决方案1】:

    将图像创建逻辑放在setter of Path 属性中。将为每个反序列化的对象调用 Setter。

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

    【讨论】:

    • 正是我要找的东西,让你吃亏!
    猜你喜欢
    • 2016-03-29
    • 2023-03-19
    • 1970-01-01
    • 2016-03-02
    • 2013-02-03
    • 2019-04-24
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多