序列化:using System;
using System.Xml;
using System.Collections;
using System.IO;
using System.Xml.Serialization;///ÔÚ±¾ÀýÖУ¬¿É½«Ò»¸ö¼òµ¥½á¹¹Ê¹ÓÃXmlÌṩµÄÐòÁл¯·½Ê½Éú³ÉÒ»¸öxmlÎĵµ
[SerializableAttribute]
public class Project
{
public string m_Name;
public string m_Desc;
public double m_TeamStrength;
public Test tt;
}
[SerializableAttribute]
public class Test
{
public string test_str1;
public string test_str2;
}public class XmlSerializerTest
{
static void Main()
{
Project aPro = new Project();
aPro.m_Name = "My Project";
aPro.m_Desc = "Some Description";
aPro.m_TeamStrength = 5;
Test t = new Test();
t.test_str1 = "test1";
t.test_str2 = "test2";
aPro.tt = t;

FileStream OutPutFS = new FileStream(@"2.xml",FileMode.Append);

XmlSerializer ProjSerializer = new XmlSerializer(aPro.GetType());

ProjSerializer.Serialize(OutPutFS,aPro);
OutPutFS.Close();
}

}

解决方案 »

  1.   

    using System;
    using System.IO;
    using System.Xml;
    using System.Xml.Serialization;[SerializableAttribute]
    public class Project
    {
    public string m_Name;
    public string m_Desc;
    public double m_TeamStrength;
    public Test tt;
    }
    [SerializableAttribute]
    public class Test
    {
    public string test_str1;

    public string test_str2;
    }class XmlDeSerializer
    {
    static void Main()
    {
    Console.WriteLine("Started...");
    XmlSerializer x = new XmlSerializer( typeof(Project) );
    FileStream fs = new FileStream(@"2.xml", FileMode.Open);
    XmlReader reader = new XmlTextReader(fs);
    Project t;
    t = (Project)x.Deserialize(reader);  Console.WriteLine("Started...");
    Console.WriteLine(t.m_Name);
    Console.WriteLine(t.m_Desc);
    Console.WriteLine(t.m_TeamStrength);
    if(t.tt != null)
    {
    Console.WriteLine(t.tt.test_str1);
    Console.WriteLine(t.tt.test_str2);
    }
    }

    }
      

  2.   

    也就是说<?xml version="1.0"?>
    <Project xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <m_Name>My Project</m_Name>
      <m_Desc>Some Description</m_Desc>
      <m_TeamStrength>5</m_TeamStrength>
      <tt>
        <test_str1>test1</test_str1>
        <test_str2>test2</test_str2>
      </tt>
    </Project>我直接写这么一个XML,然后开始反序列化?
    如果可以这个XML有什么要求么?
      

  3.   

    O ,I SEE ,反序列化之前,必须在C#里定义一个这样的类才可以,Right?反序列化得到的是上面定义的这个类的一个实例是不是啊?I SEE,thank U.
      

  4.   

    可以
    没问题
    不过,关键是你的xml要符合
    要反序列化的对象的结构比如
    你反序列化前

    保证
    你有这个对象
    [SerializableAttribute]
    public class Project
    {
    public string m_Name;
    public string m_Desc;
    public double m_TeamStrength;
    public Test tt;
    }
    [SerializableAttribute]
    public class Test
    {
    public string test_str1;

    public string test_str2;
    }的声明