Color结构的最优雅的XML序列化

一个问题困扰着我,足以在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#属性连接起来?


眼眸繁星
浏览 593回答 3
3回答

至尊宝的传说

我相信下面我对此有一个更简单的解决方案。忽略颜色序列化,并将颜色保存并加载为简单的32位ARGB数据。[XmlIgnore]public Color BackColor { get; set; }[XmlElement("BackColor")]public int BackColorAsArgb{    get { return BackColor.ToArgb();  }    set { BackColor = Color.FromArgb(value); }}
打开App,查看更多内容
随时随地看视频慕课网APP