xmlをカスタムオブジェクトに逆シリアル化しようとしていますが、閉じていますが、すべての親が正常に機能しているため、最もネストされた要素が入力されていません。
逆シリアル化プロセスのxmlとクラスは次のとおりです。
<?xml version="1.0" encoding="utf-8" ?>
<dataMapping>
<documentType attr1="blah" attr2="blah2" attr3="blah3">
<indexFields>
<indexField name1="field1A" name2="field1B" type="int" />
<indexField name1="field2A" name2="field2B" type="int" />
<indexField name1="field3A" name2="field3B" type="int" />
</indexFields>
</documentType>
<documentType attr1="asdf" attr2="asdf2" attr3="asdf3">
<indexFields>
<indexField name1="field1A" name2="field1B" type="int" />
<indexField name1="field2A" name2="field2B" type="int" />
<indexField name1="field3A" name2="field3B" type="int" />
</indexFields>
</documentType>
</dataMapping>
[XmlRoot("dataMapping")]
public class dataMapping
{
[XmlElement("documentType")]
public List<DocumentType> DocumentTypes{ get; set; }
public dataMapping() { }
}
[XmlRoot("documentType")]
public class DocumentType
{
[XmlAttribute("attr1")]
public string Area { get; set; }
[XmlAttribute("attr2")]
public string Cabinet { get; set; }
[XmlAttribute("attr3")]
public string SearchGroup { get; set; }
[XmlElement("indexFields")]
public List<IndexField> IndexFields{ get; set; }
public DocumentType() { }
}
[XmlRoot("indexField")]
public class IndexField
{
[XmlAttribute("name1")]
public string Name1 { get; set; }
[XmlAttribute("name2")]
public string Name2 { get; set; }
[XmlAttribute("type")]
public string DataType { get; set; }
public string ObjectValue { get; set; }
public IndexField() { }
}
したがって、逆シリアル化を介してカスタムオブジェクトを作成すると、インデックスフィールドとそれに関連する属性を除いて、すべてが入力されます。そのクラスを設定するのはどこが間違っていますか?