XmlAttributes.XmlRoot Eigenschaft

Definition

Ruft ein Objekt ab, das angibt, wie XmlSerializer eine Klasse als XML-Stammelement serialisiert, oder legt dieses fest.

public:
 property System::Xml::Serialization::XmlRootAttribute ^ XmlRoot { System::Xml::Serialization::XmlRootAttribute ^ get(); void set(System::Xml::Serialization::XmlRootAttribute ^ value); };
public System.Xml.Serialization.XmlRootAttribute XmlRoot { get; set; }
public System.Xml.Serialization.XmlRootAttribute? XmlRoot { get; set; }
member this.XmlRoot : System.Xml.Serialization.XmlRootAttribute with get, set
Public Property XmlRoot As XmlRootAttribute

Eigenschaftswert

Ein XmlRootAttribute, das eine Klasse überschreibt, die als XML-Stammelement attributiert ist.

Beispiele

Im folgenden Beispiel werden ein XmlAttributeOverrides -Objekt, ein XmlAttributes -Objekt und ein XmlRootAttribute -Objekt erstellt. Im Beispiel wird der XmlRootAttribute -Eigenschaft des XmlAttributes -Objekts zugewiesen und das XmlAttributes -Objekt dem XmlAttributeOverridesXmlRoot -Objekt hinzugefügt. Schließlich ruft das Beispiel das XmlAttributes -Objekt ab, indem der Type der serialisierten Klasse an das XmlAttributeOverrides -Objekt übergeben wird. (In diesem Beispiel ist Group.Type)

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

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

// This is the class that will be serialized.
public ref class Group
{
public:
   String^ GroupName;

   [XmlAttributeAttribute]
   int GroupCode;
};

// Return an XmlSerializer for overriding attributes.
XmlSerializer^ CreateOverrider()
{
   // Create the XmlAttributes and XmlAttributeOverrides objects.
   XmlAttributes^ attrs = gcnew XmlAttributes;
   XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides;
   XmlRootAttribute^ xRoot = gcnew XmlRootAttribute;

   // Set a new Namespace and ElementName for the root element.
   xRoot->Namespace = "http://www.cpandl.com";
   xRoot->ElementName = "NewGroup";
   attrs->XmlRoot = xRoot;

   /* Add the XmlAttributes object to the XmlAttributeOverrides. 
      No  member name is needed because the whole class is 
      overridden. */
   xOver->Add( Group::typeid, attrs );

   // Get the XmlAttributes object, based on the type.
   XmlAttributes^ tempAttrs;
   tempAttrs = xOver[ Group::typeid ];

   // Print the Namespace and ElementName of the root.
   Console::WriteLine( tempAttrs->XmlRoot->Namespace );
   Console::WriteLine( tempAttrs->XmlRoot->ElementName );
   XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid,xOver );
   return xSer;
}

void SerializeObject( String^ filename )
{
   // Create the XmlSerializer using the CreateOverrider method.
   XmlSerializer^ xSer = CreateOverrider();

   // Create the object to serialize.
   Group^ myGroup = gcnew Group;
   myGroup->GroupName = ".NET";
   myGroup->GroupCode = 123;

   // To write the file, a TextWriter is required.
   TextWriter^ writer = gcnew StreamWriter( filename );

   // Serialize the object and close the TextWriter.
   xSer->Serialize( writer, myGroup );
   writer->Close();
}

int main()
{
   SerializeObject( "OverrideRoot.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class Group
{
   public string GroupName;
   [XmlAttribute]
   public int GroupCode;
}

public class Test
{
   public static void Main()
   {
      Test t = new Test();
      t.SerializeObject("OverrideRoot.xml");
   }

   // Return an XmlSerializer for overriding attributes.
   public XmlSerializer CreateOverrider()
   {
      // Create the XmlAttributes and XmlAttributeOverrides objects.
      XmlAttributes attrs = new XmlAttributes();
      XmlAttributeOverrides xOver = new XmlAttributeOverrides();

      XmlRootAttribute xRoot = new XmlRootAttribute();

      // Set a new Namespace and ElementName for the root element.
      xRoot.Namespace = "http://www.cpandl.com";
      xRoot.ElementName = "NewGroup";
      attrs.XmlRoot = xRoot;

      /* Add the XmlAttributes object to the XmlAttributeOverrides.
         No  member name is needed because the whole class is
         overridden. */
      xOver.Add(typeof(Group), attrs);

      // Get the XmlAttributes object, based on the type.
      XmlAttributes tempAttrs;
      tempAttrs = xOver[typeof(Group)];

      // Print the Namespace and ElementName of the root.
      Console.WriteLine(tempAttrs.XmlRoot.Namespace);
      Console.WriteLine(tempAttrs.XmlRoot.ElementName);

      XmlSerializer xSer = new XmlSerializer(typeof(Group), xOver);
      return xSer;
   }

   public void SerializeObject(string filename)
   {
      // Create the XmlSerializer using the CreateOverrider method.
      XmlSerializer xSer = CreateOverrider();

      // Create the object to serialize.
      Group myGroup = new Group();
      myGroup.GroupName = ".NET";
      myGroup.GroupCode = 123;

      // To write the file, a TextWriter is required.
      TextWriter writer = new StreamWriter(filename);

      // Serialize the object and close the TextWriter.
      xSer.Serialize(writer, myGroup);
      writer.Close();
   }
}
Imports System.IO
Imports System.Xml.Serialization


' This is the class that will be serialized.
Public Class Group
    Public GroupName As String
    <XmlAttribute()> Public GroupCode As Integer
End Class


Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        t.SerializeObject("OverrideRoot.xml")
    End Sub
    
    
    ' Return an XmlSerializer for overriding attributes.
    Public Function CreateOverrider() As XmlSerializer
        ' Create the XmlAttributes and XmlAttributeOverrides objects.
        Dim attrs As New XmlAttributes()
        Dim xOver As New XmlAttributeOverrides()
        
        Dim xRoot As New XmlRootAttribute()
        
        ' Set a new Namespace and ElementName for the root element.
        xRoot.Namespace = "http://www.cpandl.com"
        xRoot.ElementName = "NewGroup"
        attrs.XmlRoot = xRoot
        
        ' Add the XmlAttributes object to the XmlAttributeOverrides.
        ' No  member name is needed because the whole class is
        ' overridden. 
        xOver.Add(GetType(Group), attrs)
        
        ' Get the XmlAttributes object, based on the type.
        Dim tempAttrs As XmlAttributes
        tempAttrs = xOver(GetType(Group))
        
        ' Print the Namespace and ElementName of the root.
        Console.WriteLine(tempAttrs.XmlRoot.Namespace)
        Console.WriteLine(tempAttrs.XmlRoot.ElementName)
        
        Dim xSer As New XmlSerializer(GetType(Group), xOver)
        Return xSer
    End Function
    
    
    Public Sub SerializeObject(ByVal filename As String)
        ' Create the XmlSerializer using the CreateOverrider method.
        Dim xSer As XmlSerializer = CreateOverrider()
        
        ' Create the object to serialize.
        Dim myGroup As New Group()
        myGroup.GroupName = ".NET"
        myGroup.GroupCode = 123
        
        ' To write the file, a TextWriter is required.
        Dim writer As New StreamWriter(filename)
        
        ' Serialize the object and close the TextWriter.
        xSer.Serialize(writer, myGroup)
        writer.Close()
    End Sub
End Class

Gilt für: