Specify format and indentation for object XML serialization : Xml serialization « XML « C# / CSharp Tutorial






using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class MainClass
{
  static void Main() 
  {
    try
    {
      MemberList g = new MemberList( "group name" );
      g.members[0] = new Member( "mem 1" );
      g.members[1] = new Member( "mem 2" );
      g.members[2] = new Member( "mem 3" );

      StringWriter sw = new StringWriter();
      XmlTextWriter tw = new XmlTextWriter( sw );
      tw.Formatting = Formatting.Indented;
      tw.Indentation = 4;

      XmlSerializer ser = new XmlSerializer( typeof( MemberList ) );
      ser.Serialize( tw, g );

      tw.Close();
      sw.Close();

      Console.WriteLine(sw.ToString());
    }
    catch( Exception exc )
    {
      Console.WriteLine(exc.Message );
    }

  }
}

public class MemberList
{
  public MemberList()
  {
    members = new Member[5];
  }
  public MemberList( string name ) : this()
  {
    m_name = name;
  }

  public string m_name;
  public Member[] members;
}

public class Member
{
  public Member()
  {
  }
  public Member( string name ) :this()
  {
    m_name = name;
  }

  public string m_name;
}


    group name
    
        
            mem 1
        
        
            mem 2
        
        
            mem 3
        
        
        
    








30.30.Xml serialization
30.30.1.XML serialization with namespace setting
30.30.2.Serialize/Deserialize Xml: deal with element list
30.30.3.Specify the XmlRoot and XmlAttribute for XML serialization
30.30.4.Specify format and indentation for object XML serialization
30.30.5.Using XmlSerializer to Serialize a Linq object
30.30.6.XML Serialization Sample
30.30.7.Serialization of an object marked with XmlAttribute and XmlIgnore
30.30.8.Serialize a list of object to Xml with Linq
30.30.9.Xml Serialization for Enum
30.30.10.Xml Serialization for DateTime value
30.30.11.Assign XmlArrayAttribute to two arrays, and serializes a class instance that contains those arrays.
30.30.12.XmlTextAttribute with type string informs the XmlSerializer that strings should be serialized as XML text