Du hast in jeder Klasse die gleichen Felder deklariert, das ist doch ein gutes Zeichen dafür, dass in deiner Klassenhierarchie etwas nicht stimmt. Du solltest alle drei Klassen (oder zumindest Property und PropertyGroup) von einer Basisklasse ableiten, ich nenne sie mal
PropertyBase. Segment sieht dann etwas so aus:
C#-Quelltext
1: 2: 3: 4: 5:
| public class Segment : PropertyBase { [XmlElement(DataType = typeof(Property)), XmlElement(DataType = typeof(PropertyGroup))] public List<PropertyBase> Childs { get = ... }; } |
Die Struktur sollte dann passen. Ich glaube aber nicht, dass du das "xmlns" unterdrücken kannst, wahrscheinlich musst du das einfach danach von Hand entfernen.