我会做类似的事情:
[XmlIgnore]
public Bitmap LargeIcon { get; set; }
[browsable(false),Editorbrowsable(EditorbrowsableState.Never)]
[XmlElement("LargeIcon")]
public byte[] LargeIconSerialized
{
get { // serialize
if (LargeIcon == null) return null;
using (MemoryStream ms = new MemoryStream()) {
LargeIcon.Save(ms, ImageFormat.Bmp);
return ms.ToArray();
}
}
set { // deserialize
if (value == null) {
LargeIcon = null;
} else {
using (MemoryStream ms = new MemoryStream(value)) {
LargeIcon = new Bitmap(ms);
}
}
}
}
解决方法
我想对一个复杂类型(类)进行 XML序列化 ,该 类型具有System.Drawing.Bitmap类型 的 属性 。
///
/// Gets or sets the large icon,a 32x32 pixel image representing this face.
///
/// The large icon.
public Bitmap LargeIcon { get; set; }
我现在发现,使用默认的XML序列化器序列化位图是行不通的,因为它没有公共的无参数构造函数,而默认的XML序列化器是必需的。
我知道以下几点:
我宁愿不引用其他项目,也不希望广泛地调整类,以仅允许这些位图的xml序列化。
有没有办法保持简单?
非常感谢,马塞尔
总结以上是真正的电脑专家为你收集整理的将C#/。NET中的位图序列化为XML的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得真正的电脑专家网站内容还不错,欢迎将真正的电脑专家推荐给好友。
有话要说...