将类的一部分写为XML

时间:2014-03-30 19:47:26

标签: c# xml

你好,我想问你一个问题。

我创建了一个Person类,我写了人姓,姓,id和图像。

现在我想将此类保存为带图像的.xml。我找到了一个将类保存为.xml的解决方案,但它没有将任何图像保存到.xml文件中。

private void SaveasXML()
{
     XmlSerializer serializer = new XmlSerializer(typeof(BindingList<Person>));
     FileStream fileStream = File.Create(Application.StartupPath + "\\Data\\Person.xml");
     serializer.Serialize(fileStream, New_Xml_Person);
}

我想将带有图像的所有信息保存到.xml文件中。要将图像另存为.xml文件,应将其转换为base64string。我知道但我无法使用它。

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:0)

您可以将byte [] ImageBuffer属性添加到Person类,该类包含二进制图像数据。然后,您还可以在Image属性上设置XmlIgnore属性以禁止其(反)序列化,并在ImageBuffer属性上设置XmlElement(&#34; Image&#34;)以(de)将其序列化为Image。

更新回答:

    [XmlIgnoreAttribute()] 
    public Bitmap Picture { get { return picture; } set { picture = value; } } 

    [XmlElementAttribute("Picture")] 
    public byte[] PictureByteArray { 
        get { 
            if (picture != null) { 
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                     picture.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                     return ms.ToArray();
                }
            } else return null; 
        } 
        set { 
            if (value != null) 
            {
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream(value))
                                {
                                   picture = new Bitmap(Image.FromStream(ms));
                                } 
            }
            else picture = null; 
        } 
    }