さまざまな色を含むXML構成ファイルを展開しようとしていますが、現在は次のようになっています。
<Colors>
<FooColor1>0x0BD000</FooColor1>
<FooColor2>0x11C711</FooColor2>
<FooColor3>0x224466</FooColor3>
<FooColor4>0xAA3333</FooColor4>
<FooColor5>0x886644</FooColor5>
</Colors>
これらはすべてストリングとして出てきて、すべてがうまく機能し、ダンディです。問題はここにあります、私が言ったように、私はファイルを拡張しようとしています、新しいフォーマットはこのようになります
<Colors>
<DetailColors>
<FooColor1>0x0BD000</FooColor1>
<FooColor2>0x11C711</FooColor2>
<FooColor3>0x224466</FooColor3>
<FooColor4>0xAA3333</FooColor4>
<FooColor5>0x886644</FooColor5>
</DetailColors>
<GoalColors>
//Similar stuff, not actually in yet.
</GoalColors>
</Colors>
ただし、単一レベルで機能したシリアル化スタイルでは、ネストを処理できないようです。
[System.SerializableAttribute()]
public class GraphColors
{
public string FooColor1 { get; set; }
public string FooColor2 { get; set; }
public string FooColor3 { get; set; }
public string FooColor4 { get; set; }
public string FooColor5 { get; set; }
}
[System.SerializableAttribute()]
public class DetailColors
{
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public GraphColors ColorSchema { get; set; }
}
[System.SerializableAttribute()]
public class Colors
{
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
private DetailColors CombinedColors { get; set; }
public static GraphColors getColorsFromConfig()
{
return new XmlSerializer(Colors).Deserialize(path).CombinedColors.ColorSchema
}
}
これは、中間オブジェクトがない場合は正常に機能しましたが、中間オブジェクトがnull値を与えるようになりました。どんな助けでも大歓迎です。