【发布时间】:2015-06-10 21:49:45
【问题描述】:
Windows.Media.Brush 不是可序列化的类,所以我想知道如何序列化它。
我将 [Serializable] 属性放在类本身上,并将 [DataContract] 以及 [DataMember(Name = "PropertyName")] 放在每个属性上,所以它看起来像这样:
[Serializable]
[DataContract]
public class ClassName: SerializeableBase<ClassName>
{
// Color
[DataMember(Name = "Color")]
private Brush _color;
public Brush Color
{
get { return _color; }
set
{
_color = value;
}
}
}
我的第一个想法是我序列化一个十六进制字符串,然后我可以将其转换回画笔。如果我也可以将 Brush 转换为十六进制,这样我就可以在序列化之前更新字符串以及在反序列化字符串之后检索颜色。可以转换 Brush 以从中获取十六进制字符串吗?或者有没有更好的方法来序列化这个类?
【问题讨论】:
-
看过那个解决方案,但它没有提到它如何与其他属性一起工作?我还在研究它。谢谢。
-
使用 BrushConverter 类,以便您可以将其序列化为字符串。
-
@HansPassant 这就是我现在实际使用的。 :) 谢谢!遇到其他问题。完成后会更新答案。
标签: c# .net wpf serialization brush