zoukankan      html  css  js  c++  java
  • xml序列化及反序列化.net对象

    序列化一个类通常添加[XmlRoot("根节点名字")] 找到要序列化的内容

    对要序列化的类添加 [Serializable]属性用于序列化

    对于要序列化的字段添加  [XmlElement("序列化对应的节点名字,即字段的别名")]

    <Headmaster IsAssistant="false">
        private bool _isAssistant;
        [XmlAttribute("IsAssistant")]
        public bool IsAssistant
        {
            get
            {
                return _isAssistant;
            }
    
            set
            {
                _isAssistant = value;
            }
        }
    
    
     <Name>June</Name>
    [XmlText()]
            public string Name
            {
                get
                {
                    return _name;
                }
    
                set
                {
                    _name = value;
                }
            }
    
    
    
     <Classes>
        <Class>
          <Teacher>
            <Name>June</Name>
            <Sex>O</Sex>
            <Age>30</Age>
          </Teacher>
          <Students>
            <Student>
              <Name>Student1</Name>
              <Sex>I</Sex>
              <Age>10</Age>
            </Student>
          </Students>
        </Class>
        <Class>
          <Teacher>
            <Name>Sam</Name>
            <Sex>I</Sex>
            <Age>32</Age>
          </Teacher>
          <Students>
            <Student>
              <Name>Student2</Name>
              <Sex>O</Sex>
              <Age>10</Age>
            </Student>
            <Student>
              <Name>Student3</Name>
              <Sex>I</Sex>
              <Age>10</Age>
            </Student>
            <Student>
              <Name>Student4</Name>
              <Sex>O</Sex>
              <Age>10</Age>
              <Skill>DB</Skill>
              <Skill>C#</Skill>
            </Student>
          </Students>
        </Class>
      </Classes>
    
    private List<Class> _classes = new List<Class>();
        [XmlArray("Classes")]
        [XmlArrayItem("Class")]
        public List<Class> Classes
        {
            get
            {
                return _classes;
            }
        }

    [Serializable]:用于标志这个类是可进行序列化的。注意此属性只能用于类定义上,另外类也可以通过实现System.Runtime.Serialization.ISerializable进行自定义序列化控制。

    [XmlRoot]:用于定义xml根节点的节点名称。

    [XmlElement]:用于定义类属性在序列化中对应节点的名称。

    [XmlIgnore]:标志此属性不参与序列化。

    [XmlArray]:通常与[XmlArrayItem]配合使用,定义数组的父节点名称与子节点名称。

  • 相关阅读:
    《免费:商业的未来》书摘
    wxWidgets的安装编译、相关配置、问题分析处理
    CodeBlocks的下载安装、配置、简单编程
    【最新】让快捷方式 实现相对路径——非.bat方式实现
    跨平台C/C++集成开发环境-Code::Blocks-内置GCC
    IOS自定义alertview
    IOS快速开发之常量定义
    为UITableViewController瘦身
    IOS中扩展机制Category和associative
    IOS制作一个漂亮的登录界面
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/5460436.html
Copyright © 2011-2022 走看看