一個(gè)問題困擾著我,足以在Stack Overflow上注冊(cè)。當(dāng)前,如果我想將Color序列化為XML字符串,命名為color或#rrggbb或#aarrggbb,則可以這樣做:[XmlIgnore()]public Color color;[XmlElement(ElementName = "Color")]public String color_XmlSurrogate{ get { return MyColorConverter.SetColor(color); } set { color = MyColorConverter.GetColor(value); }}這MyColorConverter就是我喜歡的方式進(jìn)行序列化。但是,所有這些都感覺像是在與其他領(lǐng)域和所有事物融合在一起。有沒有一種方法可以使它以更少的行數(shù)運(yùn)行,也許將TypeDescriptor與與XML相關(guān)的C#屬性連接起來?
3 回答

至尊寶的傳說
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
我相信下面我對(duì)此有一個(gè)更簡(jiǎn)單的解決方案。忽略顏色序列化,并將顏色保存并加載為簡(jiǎn)單的32位ARGB數(shù)據(jù)。
[XmlIgnore]
public Color BackColor { get; set; }
[XmlElement("BackColor")]
public int BackColorAsArgb
{
get { return BackColor.ToArgb(); }
set { BackColor = Color.FromArgb(value); }
}
- 3 回答
- 0 關(guān)注
- 613 瀏覽
添加回答
舉報(bào)
0/150
提交
取消