我想对一个复杂类型(类)进行 XML序列化 ,该 类型具有System.Drawing.Bitmap类型 的 属性 。
/// <summary> /// Gets or sets the large icon, a 32x32 pixel image representing this face. /// </summary> /// <value>The large icon.</value> public Bitmap LargeIcon { get; set; }
我现在发现,使用默认的XML序列化器序列化位图是行不通的,因为它没有公共的无参数构造函数,而默认的XML序列化器是必需的。
我知道以下几点:
我宁愿不引用其他项目,也不希望广泛地调整类,以仅允许这些位图的xml序列化。
有没有办法保持简单?
非常感谢,马塞尔
我会做类似的事情:
[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); } } } }