XmlAttributes.XmlRoot Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает объект, задающий сериализацию с помощью XmlSerializer для класса как корневого элемента XML.
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
Значение свойства
XmlRootAttribute, переопределяющий класс с атрибутами корневого элемента XML.
Примеры
В следующем примере создается XmlAttributeOverrides объект, XmlAttributes объект и XmlRootAttribute объект. В примере присваивается XmlRootAttribute свойству XmlAttributes XmlRoot объекта и добавляется XmlAttributes объект в XmlAttributeOverrides объект. Наконец, в примере объект получается XmlAttributes путем передачи Type сериализованного класса в XmlAttributeOverrides объект. (В этом примере Type используется Group
значение .)
#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