Habillage d’éléments de tableau sérialisés avec le nom du tableau

J’utilise VSTS2008 + C # + .Net 3.0. J’utilise le code ci-dessous pour sérialiser XML et mon object contient une propriété de type tableau. Je souhaite append un calque d’éléments supplémentaire (calque d’élément “MyInnerObjectProperties” dans les résultats attendus ci-dessous, et je souhaite définir l’élément “MyInnerObjectProperties” comme parent. élément pour tous les éléments MyInnerObjectProperty). Des idées?

XML sérialisé en cours,

    Foo Type   Goo Type    

XML sérialisé attendu,

      Foo Type   Goo Type     

Code actuel,

 public class MyClass { private MyObject[] _myObjectProperty; [XmlElement(IsNullable=false)] public MyObject[] MyObjectProperty { get { return _myObjectProperty; } set { _myObjectProperty = value; } } } public class MyObject { private MyInnerObject[] _myInnerObjectProperty; [XmlElement(IsNullable = false)] public MyInnerObject[] MyInnerObjectProperty { get { return _myInnerObjectProperty; } set { _myInnerObjectProperty = value; } } } public class MyInnerObject { public ssortingng ObjectName; } public class Program { static void Main(ssortingng[] args) { XmlSerializer s = new XmlSerializer(typeof(MyClass)); FileStream fs = new FileStream("foo.xml", FileMode.Create); MyClass instance = new MyClass(); instance.MyObjectProperty = new MyObject[1]; instance.MyObjectProperty[0] = new MyObject(); instance.MyObjectProperty[0].MyInnerObjectProperty = new MyInnerObject[2]; instance.MyObjectProperty[0].MyInnerObjectProperty[0] = new MyInnerObject(); instance.MyObjectProperty[0].MyInnerObjectProperty[0].ObjectName = "Foo Type"; instance.MyObjectProperty[0].MyInnerObjectProperty[1] = new MyInnerObject(); instance.MyObjectProperty[0].MyInnerObjectProperty[1].ObjectName = "Goo Type"; s.Serialize(fs, instance); return; } } 

utiliser le XmlArrayItemAtsortingbute

 [XmlArray("MyInnerObjectProperties")] [XmlArrayItemAtsortingbute("MyInnerObjectProperty", typeof(MyInnerObject), IsNullable = false)] public MyInnerObject[] MyInnerObjectProperty { get { return _myInnerObjectProperty; } set { _myInnerObjectProperty = value; } } 
  ... [XmlArray(IsNullable = false)] [XmlArrayItem("MyInnerObjectProperties")] public MyObject[] MyObjectProperty { get { return _myObjectProperty; } set { _myObjectProperty = value; } } ...