XmlSerializer

XmlSerializer作用是将对象序列化到 XML 文档中和从 XML 文档中反序列化对象。XmlSerializer 使您得以控制如何将对象编码到 XML 中。

所在的命名空间:System.Xml.Serialization
程序集:System.Xml(在 system.xml.dll 中)

先看一个简单的例子,只序列化一个字符串

   static void Main(string[] args)

        {

            string str="Hello World";

            XmlSerializer xml=new XmlSerializer(typeof(string));

            xml.Serialize(Console.Out,str);

        }

XmlSerializer有很多构造函数,这里我们只用了最简单的一种,本例中的构造函数的参数类型是type,输出时采用的流是控制台输出流

结果:XmlSerializer

看输出结果我们可以看出这是一个Xml文档

本文不对Xml进行详细的解释,推荐链接http://baike.baidu.com/link?url=oXEXW9JR89XmCl5akWbaWN6fqdVjbsQRslyABz0M_osCDCrukCyqHKX2c6D7YifKQUp_0Ht0_nM4lv4Y-qZFJIXpVVJqyH-nvgW8V52QpHtU2AE-4bf_iDKHYEE7rm0o

 下面我们来序列化一个对象

[XmlRoot]

    public class Animals

    {

        [XmlElement]

        public string Name { get; set; }

        [XmlElement]

        public int Age { get; set; }

    }


static void Main(string[] args)

        {

            Animals ani=new Animals();

            ani.Name = "dog";

            ani.Age = 12;

            XmlSerializer xml=new XmlSerializer(typeof(Animals));

            xml.Serialize(new FileStream(@"D:\1.txt",FileMode.Create,FileAccess.ReadWrite), ani);

        }

执行之后的结果:

<?xml version="1.0"?>
<Animals xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>dog</Name>
<Age>12</Age>
</Animals>

下面是反序列化对象

 Animals ani=new Animals();

            ani.Name = "dog";

            ani.Age = 12;

            FileStream stream = new FileStream(@"D:\1.txt", FileMode.Create, FileAccess.ReadWrite);

            XmlSerializer xml=new XmlSerializer(typeof(Animals));

            xml.Serialize(stream, ani);

            stream.Close();

            Animals ani2=(Animals)xml.Deserialize(new FileStream(@"D:\1.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite));

            Console.WriteLine(ani2.Age+ani2.Name);

 

你可能感兴趣的:(Serialize)