我正在序列化Color[]
数组。在序列化时为其分配了Color
的一些值。
ColorList = new Color[] { Color.Red, Color.Blue, Color.Black, Color.Yellow };
在反序列化时,我以相同的数组长度返回对象,但值不存在。 这是我得到的 -
{Name=0, ARGB=(0, 0, 0, 0)}
答案 0 :(得分:1)
System.Drawing.Color
无法表示为RGBA
。您需要将其表示为颜色代码,并在以后对其进行解码。
您必须使用具有RGBA值的string
数组,如下所示:
ColorList = new string[] {
string.Format("{0},{1},{2},{3}", Color.Red.R, Color.Red.G, Color.Red.B, Color.Red.A),
string.Format("{0},{1},{2},{3}", Color.Black.R, Color.Black.G, Color.Black.B, Color.Black.A),
string.Format("{0},{1},{2},{3}", Color.Yellow.R, Color.Yellow.G, Color.Yellow.B, Color.Yellow .A)
}