通过


XmlRootAttribute.ElementName 属性

定义

获取或设置由类和Deserialize(Stream)方法分别生成和识别XmlSerializerSerialize(TextWriter, Object) XML 元素的名称。

public:
 property System::String ^ ElementName { System::String ^ get(); void set(System::String ^ value); };
public string ElementName { get; set; }
member this.ElementName : string with get, set
Public Property ElementName As String

属性值

在 XML 文档实例中生成和识别的 XML 根元素的名称。 默认值为序列化类的名称。

示例

以下示例创建类的 XmlRootAttribute 实例,并将 ElementName 属性设置为新值。 然后,该对象用于创建一个 XmlAttributeOverrides 对象,用于重写对象的序列化。

public void SerializeOrder(string filename)
{
   // Create an XmlSerializer instance using the method below.
   XmlSerializer myXmlSerializer = CreateOverrider();

   // Create the object, and set its Name property.
   Student myStudent = new Student();
   myStudent.Name = "Student class1";

   // Serialize the class, and close the TextWriter.
   TextWriter writer = new StreamWriter(filename);
   myXmlSerializer.Serialize(writer, myStudent);
   writer.Close();
}

// Return an XmlSerializer to override the root serialization.
public XmlSerializer CreateOverrider()
{
   // Create an XmlAttributes to override the default root element.
   XmlAttributes myXmlAttributes = new XmlAttributes();

   // Create an XmlRootAttribute and set its element name and namespace.
   XmlRootAttribute myXmlRootAttribute = new XmlRootAttribute();
   myXmlRootAttribute.ElementName = "OverriddenRootElementName";
   myXmlRootAttribute.Namespace = "http://www.microsoft.com";

   // Set the XmlRoot property to the XmlRoot object.
   myXmlAttributes.XmlRoot = myXmlRootAttribute;
   XmlAttributeOverrides myXmlAttributeOverrides = 
                                 new XmlAttributeOverrides();
   
   /* Add the XmlAttributes object to the 
   XmlAttributeOverrides object. */
   myXmlAttributeOverrides.Add(typeof(Student), myXmlAttributes);

   // Create the Serializer, and return it.
   XmlSerializer myXmlSerializer = new XmlSerializer
      (typeof(Student), myXmlAttributeOverrides);
   return myXmlSerializer;
}
Public Sub SerializeOrder(filename As String)
   ' Create an XmlSerializer instance using the method below.
   Dim myXmlSerializer As XmlSerializer = CreateOverrider()

   ' Create the object, and set its Name property.
   Dim myStudent As New Student()
   myStudent.Name = "Student class1"

   ' Serialize the class, and close the TextWriter.
   Dim writer = New StreamWriter(filename)
   myXmlSerializer.Serialize(writer, myStudent)
   writer.Close()
End Sub

' Return an XmlSerializer to override the root serialization.
Public Function CreateOverrider() As XmlSerializer
   ' Create an XmlAttributes to override the default root element.
   Dim myXmlAttributes As New XmlAttributes()

   ' Create an XmlRootAttribute and set its element name and namespace.
   Dim myXmlRootAttribute As New XmlRootAttribute()
   myXmlRootAttribute.ElementName = "OverriddenRootElementName"
   myXmlRootAttribute.Namespace = "http://www.microsoft.com"

   ' Set the XmlRoot property to the XmlRoot object.
   myXmlAttributes.XmlRoot = myXmlRootAttribute
   Dim myXmlAttributeOverrides As New XmlAttributeOverrides()

   ' Add the XmlAttributes object to the XmlAttributeOverrides object.
   myXmlAttributeOverrides.Add(GetType(Student), myXmlAttributes)

   ' Create the Serializer, and return it.
   Dim myXmlSerializer As New XmlSerializer(GetType(Student), myXmlAttributeOverrides)
   Return myXmlSerializer
End Function

注解

ElementName指定是否希望生成的 XML 元素的名称与类名不同。

适用于