C# - 在反序列化中没有获得Color []值

时间:2017-04-05 11:27:38

标签: c# serialization deserialization xml-serialization

我正在序列化Color[]数组。在序列化时为其分配了Color的一些值。

ColorList = new Color[] { Color.Red, Color.Blue, Color.Black, Color.Yellow };

在反序列化时,我以相同的数组长度返回对象,但值不存在。 这是我得到的 -

{Name=0, ARGB=(0, 0, 0, 0)}

1 个答案:

答案 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)
}