2017-04-05 4 views
0

배열을 Color[]으로 serialize합니다. 직렬화시에 Color의 일부 값을 할당하십시오.Deserialization의 Color [] 값을 가져 오지 않습니다.

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

역 직렬화시에 동일한 배열 길이로 개체를 다시 가져 오지만 값은 없습니다.

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

가하는 [이 대답 도움말] (http://stackoverflow.com/a/2306335/5174469)? 또는이 될 수 있습니다 [this one] (http://stackoverflow.com/a/3891614/5174469)? –

+1

무엇으로 직렬화 하시겠습니까? – haim770

+0

@ haim770 XML serialization –

답변

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) 
} 
+1

그 이유를 알려주시겠습니까? –

+0

직렬화시 색상을 RGBA로 표현할 수 없습니다. 이를 색상 코드로 표현하고 나중에 코드를 해독해야합니다. –

+1

'ColorTranslator.ToHtml'과'ColorTranslator.FromHtml'은 더 간단합니다. –