一个问题困扰着我,足以在Stack Overflow上注册。当前,如果我想将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就是我喜欢的方式进行序列化。但是,所有这些都感觉像是在与其他领域和所有事物融合在一起。有没有一种方法可以使它以更少的行数运行,也许将TypeDescriptor与与XML相关的C#属性连接起来?
3 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
我相信下面我对此有一个更简单的解决方案。忽略颜色序列化,并将颜色保存并加载为简单的32位ARGB数据。
[XmlIgnore]
public Color BackColor { get; set; }
[XmlElement("BackColor")]
public int BackColorAsArgb
{
get { return BackColor.ToArgb(); }
set { BackColor = Color.FromArgb(value); }
}
- 3 回答
- 0 关注
- 589 浏览
添加回答
举报
0/150
提交
取消