zoukankan      html  css  js  c++  java
  • 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,输出时采用的流是控制台输出流

    结果:

    看输出结果我们可以看出这是一个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);
  • 相关阅读:
    Windows7与Window2008 64位IIS7上面DCOM配置Excel、Word
    C#连接SQLite的...方法
    VS2010版快捷键
    ajax 安装包下载
    Type InvokeMember()用法简介
    Lambda表达式
    多源最短路径算法
    单源点有权图的最短路径算法
    单源无权图的最短路径算法
    Tree Traversals Again
  • 原文地址:https://www.cnblogs.com/jixinyu/p/4298709.html
Copyright © 2011-2022 走看看