XmlArrayItemAttribute.NestingLevel Proprietà

Definizione

Ottiene o imposta il livello in una gerarchia di elementi XML interessati dall'XmlArrayItemAttribute.

public:
 property int NestingLevel { int get(); void set(int value); };
public int NestingLevel { get; set; }
member this.NestingLevel : int with get, set
Public Property NestingLevel As Integer

Valore della proprietà

Int32

Indice con inizio zero di un gruppo di indici in una matrice di matrici.

Esempio

Nell'esempio seguente vengono applicati tre XmlArrayItemAttribute attributi a una matrice di matrici. Per specificare a quale matrice si applica ogni attributo, la NestingLevel proprietà viene impostata sull'indice delle matrici.

#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Serialization;
using namespace System::IO;

public ref class Forest
{
    // Set the NestingLevel for each array. The first
    // attribute (NestingLevel = 0) is optional.
public:
    [XmlArrayItem(ElementName = "tree", NestingLevel = 0)]
    [XmlArrayItem(ElementName = "branch", NestingLevel = 1)]
    [XmlArrayItem(ElementName = "leaf",NestingLevel = 2)]
    array<array<array<String^>^>^>^ TreeArray;
};

int main()
{
    XmlSerializer^ serializer = gcnew XmlSerializer(Forest::typeid);

    Forest^ constructedForest = gcnew Forest();
    array<array<array<String^>^>^>^ tree = 
        gcnew array<array<array<String^>^>^>(2);

    array<array<String^>^>^ firstBranch = gcnew array<array<String^>^>(1);
    firstBranch[0] = gcnew array<String^>{"One"};
    tree[0] = firstBranch;

    array<array<String^>^>^ secondBranch = gcnew array<array<String^>^>(2);
    secondBranch[0] = gcnew array<String^>{"One","Two"};
    secondBranch[1] = gcnew array<String^>{"One","Two","Three"};
    tree[1] = secondBranch;

    constructedForest->TreeArray = tree;

    serializer->Serialize(Console::Out, constructedForest);
}
using System;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

public class Forest{
   /* Set the NestingLevel for each array. The first
   attribute (NestingLevel = 0) is optional. */
   [XmlArrayItem(ElementName = "tree", NestingLevel = 0)]
   [XmlArrayItem(ElementName = "branch", NestingLevel = 1)]
   [XmlArrayItem(ElementName = "leaf",NestingLevel = 2)]
   public string[][][] TreeArray;
}

public class Test{
   public static void Main(){
      Test t = new Test();
      t.SerializeObject("Tree.xml");
   }
   private void SerializeObject(string filename){
      XmlSerializer serializer =
      new XmlSerializer(typeof(Forest));

      Forest f = new Forest();
      string[][][] myTreeArray = new string[2] [][];

      string[][]myBranchArray1= new string[1][];
      myBranchArray1[0]=new string[1]{"One"};
      myTreeArray[0]=myBranchArray1;

      string[][]myBranchArray2= new string[2][];
      myBranchArray2[0]=new string[2]{"One","Two"};
      myBranchArray2[1]=new string[3]{"One","Two","Three"};
      myTreeArray[1]=myBranchArray2;

      f.TreeArray=myTreeArray;

     serializer.Serialize(Console.Out, f);
   }
}

Commenti

Un documento XML può contenere gerarchie di elementi XML. Per rappresentare tale gerarchia, viene usata una matrice di matrici. In una matrice di questo tipo, ogni indice rappresenta un livello nella gerarchia. Pertanto, la NestingLevel proprietà viene utilizzata solo quando si applica un XmlArrayItemAttribute oggetto a un campo che restituisce una matrice di matrici.

Quando si applica l'attributo, specificare il livello della gerarchia su cui influisce l'attributo impostando .NestingLevel Il primo indice ha sempre il valore 0; pertanto è facoltativo impostare il relativo NestingLevel XmlArrayItemAttribute valore senza un NestingLevel valore applicato al primo indice di matrice. Solo gli oggetti successivi XmlArrayItemAttribute richiedono NestingLevel valori specificati (come 1, 2, 3 e così via).

Si applica a