Skip to main content
.NET Framework Class Library
IXmlSerializable..::.WriteXml Method

Converts an object into its XML representation.

Namespace: System.Xml.Serialization
Assembly: System.Xml (in System.Xml.dll)
Syntax
Sub WriteXml ( _
	writer As XmlWriter _
)
void WriteXml(
	XmlWriter writer
)
void WriteXml(
	XmlWriter^ writer
)
abstract WriteXml : 
        writer:XmlWriter -> unit 

Parameters

writer
Type: System.Xml..::.XmlWriter
The XmlWriter stream to which the object is serialized.
Remarks

The WriteXml implementation you provide should write out the XML representation of the object. The framework writes a wrapper element and positions the XML writer after its start. Your implementation may write its contents, including child elements. The framework then closes the wrapper element.

Write sufficient information to the XmlWriter stream to allow the ReadXml method to reconstitute your object.

For example, if your object state includes an array variable, be sure to write the length of the array, or use a parent element to contain the elements that describe the array values, so that you know how many values to read when the object is reconstituted.

Examples

The following example illustrates an implementation of the WriteXml method.


Public Sub WriteXml(ByVal writer As XmlWriter) Implements IXmlSerializable.WriteXml
    writer.WriteString(personName)
End Sub


public void WriteXml (XmlWriter writer)
{
    writer.WriteString(personName);
}


virtual void WriteXml( XmlWriter^ writer )
{
   writer->WriteString( personName );
}

The following example illustrates the use of the XmlSerializer class to deserialize this object.


Imports System
Imports System.Xml
Imports System.Xml.Serialization

Public Class Writer

  Public Shared Sub Main()

	' Create a person object.
	Dim fred As New Person("Fred Flintstone")

	' Serialize the object to a file.
	Dim writer As New XmlTextWriter("test.xml", Nothing)
	Dim serializer As New XmlSerializer(GetType(Person))
	serializer.Serialize(writer, fred)
  End Sub

End Class


using System;
using System.Xml;
using System.Xml.Serialization;

public class Writer {

  public static void Main() {

    // Create a person object.
    Person fred = new Person("Fred Flintstone");

    // Serialize the object to a file.
    XmlTextWriter writer = new XmlTextWriter("test.xml", null);
    XmlSerializer serializer = new XmlSerializer(typeof(Person));
    serializer.Serialize(writer, fred);
  }

}


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

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

int main()
{
   // Create a person object.
   Person ^ fred = gcnew Person( "Fred Flintstone" );

   // Serialize the object to a file.
   XmlTextWriter^ writer = gcnew XmlTextWriter( "test.xml", nullptr );
   XmlSerializer^ serializer = gcnew XmlSerializer( Person::typeid );
   serializer->Serialize( writer, fred );
}

Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.