次のクラス:どのように必要なXMLのシリアル化を達成するには?
public class CodelistFilters
{
[System.Xml.Serialization.XmlArray]
public List<CodelistFilterAndElement> AndGroup;
}
public class CodelistFilterAndElement
{
[System.Xml.Serialization.XmlArray]
public List<CodelistFilterOrElement> OrGroup;
[System.Xml.Serialization.XmlAttribute]
public string Relationship { get { return "And"; } }
}
public class CodelistFilterOrElement
{
[System.Xml.Serialization.XmlElement]
public List<CodelistFilter> CodelistFilters;
[System.Xml.Serialization.XmlAttribute]
public string Relationship { get { return "Or"; } }
}
public class CodelistFilter
{
[System.Xml.Serialization.XmlAttribute]
public string Name { get; set; }
[System.Xml.Serialization.XmlAttribute]
public string Value1 { get; set; }
[System.Xml.Serialization.XmlAttribute]
public string Value2 { get; set; }
}
は、私は一種の理解
<CodelistFilters xmlns:xsi="http://www.w3.org/2001/XMLSchema">
<AndGroup>
<CodelistFilterAndElement>
<OrGroup>
<CodelistFilterOrElement>
<CodelistFilters>
<CodelistFilter Name="Description" Value1="test" />
</CodelistFilters>
</CodelistFilterOrElement>
</OrGroup>
</CodelistFilterAndElement>
</AndGroup>
としてシリアライズされます。しかし、私はこれを達成するために何をしようとしている:
<CodelistFilters xmlns:xsi="http://www.w3.org/2001/XMLSchema">
<Group Relationship="And">
<Group Relationship="Or">
<CodelistFilters Name="Description" Value1="test" />
</Group>
</Group>
どのように私はこれを達成するために、私のC#クラスを構築する必要がありますか?私はXmlAttributesと入れ子にされたリストを使いこなそうとしましたが、ちょうど異なるバージョンの "間違った"で終わります。
xmlにタグを持つクラスと同じ数のクラスを用意する必要があります。 2つのタグ(Group、およびCodelListFilters)が必要ですが、4つのクラスがあります。 – jdweng
jdwengありがとうございますが、リストであるプロパティを含むクラスではなく、リストであるクラスをどのようにコードするのか分かりません。 – user489998
プロパティはクラスの子です。 XMLでは、タグは別のタグの子です。したがって、あなたのxmlグループではGroup of Childですので、GroupはGroupの子です。あなたの場合、Groupクラスには2つのタイプの子(GroupとCodeListFilters)があります。また、CodeListFiltersには、2つのタイプの子(GroupおよびCodeListFilters)があります。だからあなたは4つではなく、2つのクラスだけが必要です。 – jdweng