程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#實現對象的Xml格式序列化及反序列化

C#實現對象的Xml格式序列化及反序列化

編輯:關於C#

要序列化的對象的類:

[Serializable]

public class Person
{
  private
  string name;

  public
  string Name
  {
    get
    {
      return name;
    }
    set
    {
      name=value;
    }
  }

  public
  string Sex;

  public
  int Age=31;

  public Course[] Courses;

  public Person( )
  {
  }

  public Person(
  string Name )
  {
    name=Name;
    Sex="男";
  }
}
[Serializable]
public class Course
{
  public
  string Name;
  [XmlIgnore]
  public
  string Description;

  public Course( )
  {
  }

  public Course(
  string name,
  string description )
  {
    Name=name;
    Description=description;
  }
}

進行序列化及反序列化的測試類:

class Test
{
  //序列化
  public void Serialiaze( )
  {
    Person c=new Person( "cyj" )c.Courses=new Course[2];
    c.Courses[0]=new Course( "英語","交流工具" )c.Courses[1]=new Course( "數學","自然科學" )
    XmlSerializer xs=new XmlSerializer( typeof( Person ) );
    Stream stream = new FileStream( "c:\\cyj.xml", FileMode.Create, FileAccess.Write, FileShare.ReadWrite );
    xs.Serialize( stream, c );
    stream.Close( );
  }
  //反序列化
  public void Deserialize( )
  {
    XmlSerializer xs=new XmlSerializer( typeof( Person ) );
    Stream stream = new FileStream( "c:\\cyj.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite );
    Person p=( Person )xs.Deserialize( stream );
    Console.WriteLine( p.Name );
    Console.WriteLine( p.Age.ToString( ) );
    Console.WriteLine( p.Courses.Length.ToString( ) );
    Console.Read( );
  }
}

格式化後Xml的文檔內容為:

<?xml version="1.0"?><Person xmlns:xsd=http://www.w3.org/2001/XMLSchema
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Sex>男</Sex> <Age>31</Age> <Courses>
<Course>
<Name>英語</Name>
</Course>
<Course>
<Name>數學</Name>
</Course> </Courses> <Name>cyj</Name></Person>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved