你好,我想问你一个问题。
我创建了一个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
。我知道但我无法使用它。
有什么建议吗?感谢。
答案 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;
}
}