當前位置:首頁 > 科技 > 正文

将C#/ NET中的位圖序列化為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);
            }
        }
    }
}
解決方法

我想對一個複雜類型(類)進行 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序列化器是必需的。

我知道以下幾點:

  • 有一個解決方法,發布在這裡:http : //www.dotnetspider.com/resources/4759-XML-Serialization-C-Part-II-Images.aspx 。但是,由于這包括添加其他屬性,在我看來,這似乎有點hack。
  • 在sourceforge上還有一個深入的XML序列化項目。

我甯願不引用其他項目,也不希望廣泛地調整類,以僅允許這些位圖的xml序列化。

有沒有辦法保持簡單?

非常感謝,馬塞爾

總結

以上是真正的電腦專家為你收集整理的将C#/。NET中的位圖序列化為XML的全部内容,希望文章能夠幫你解決所遇到的問題。

如果覺得真正的電腦專家網站内容還不錯,歡迎将真正的電腦專家推薦給好友。

你可能想看:

有話要說...

取消
掃碼支持 支付碼