首页 ┆网站地图 ┆游戏资讯 ┆天龙八部 ┆资源下载 ┆淘宝网购物 ┆淘宝数码产品 ┆淘宝数码相机 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页 > NET专区 > C#语言 > C#语言之XMLSerializer类把XML文档反序列化为对象
C#语言之XMLSerializer类把XML文档反序列化为对象
来源: 发布时间:2012-01-21 浏览:人次  字体:[  
C#语言之XMLSerializer类把XML文档反序列化为对象,反序列化,把XML文档反序列化为对象。

  

 

   实现步骤

  一:XML文件编写

  我们以学生科目为例

  1.1 Student.xml

  <?xml version="1.0" encoding="utf-8" ?>
  <Student xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <!-- 姓名-->
   <Name>小强</Name>
   <!-- 性别-->
   <Sex>男</Sex>
   <!-- 年龄-->
   <Age>20</Age>
   <!-- 课程集合-->
   <Courses>
      <!-- 课程-->
      <Course>
         <!-- 课程名称-->
         <CourseName>英语</CourseName>
         <!-- 课程分数-->
         <Grade>92</Grade>
         <!-- 课程描述-->
         <CourseDescription>英语是一门全球应用最广泛的语言</CourseDescription>
      </Course>
      <Course>
       <CourseName>数学</CourseName>
       <Grade>98</Grade>
       <CourseDescription>俗话说学好数理化走遍天下都不怕</CourseDescription> 
     </Course>
   </Courses>
  </Student>

  二:代码文件编写

  映射的实体类

  1.1 Student.cs

  using System;
  using System.Collections.Generic;
  using System.Text;
  using System.Xml;
  using System.Xml.Serialization;

  namespace MyXmlSerializer
  {

     [Serializable]
        public class Student
         {
            //姓名
            private string _name;
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
            //性别
            private string _sex;
            public string Sex
            {
                get { return _sex; }
                set { _sex = value; }
            }
            //年龄
            private int _age;
            public int Age
            {
                get { return _age; }
                set { _age = value; }
            }
            //课程集合
            private Course[] _courses;
            public Course[] Courses
            {
                get { return _courses; }
                set { _courses = value; }
            }
        }     

    }

        //课程类

    [Serializable]
       public class Course
       {
          //科目名称
          private string _coursename;
          public string CourseName
          {
              get { return _coursename; }
              set { _coursename = value; }
          }
          //科目分数
          private int _grade;
          public int Grade
          {
              get { return _grade; }
              set { _grade = value; }
          }
          //科目描述
          private string _coursedescription;
          public string CourseDescription
          {
              get { return _coursedescription; }
              set { _coursedescription = value; }
          }
      } 
  }

  1.2 Form.cs

  using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Text;
  using System.Windows.Forms;
  using System.Xml;
  using System.Xml.Serialization;
  using System.IO;

  namespace MyXmlSerializer
  {
      public partial class Form3 : Form
      {
          public Form3()
          {
              InitializeComponent();
          }  

          /// <summary>
          /// 把XML文档反序列化为对象
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void btnDeserialize_Click(object sender, EventArgs e)
          {
              XMLDeserialize();
          }

          /// <summary>
          /// XML文档反序列化
          /// </summary>
          public void XMLDeserialize()
          {
              XmlSerializer xs = new XmlSerializer(typeof(Student));
              Stream stream = new FileStream("http://www.cnblogs.com/Student.xml", FileMode.Open, FileAccess.Read, FileShare.Read);
              Student student = xs.Deserialize(stream) as Student;
              MessageBox.Show(student.Name);
              MessageBox.Show(student.Age.ToString());
              MessageBox.Show(student.Courses[0].CourseName);
              MessageBox.Show(student.Courses[0].Grade.ToString());
              MessageBox.Show(student.Courses[0].CourseDescription);
              MessageBox.Show(student.Courses[1].CourseName);
              MessageBox.Show(student.Courses[1].Grade.ToString());
              MessageBox.Show(student.Courses[1].CourseDescription);
              stream.Close();
           }
      }
  }

  运行效果

  当我们点击“把XML文档反序列化为对象”按钮后,依次弹出“小强”,“20”等消息。

  

  

  


 
相 关 文 章 发布商链接
·C#基础学习定义类与创建类的对象
·C#语言之XmlValidatingReader类对XML...
·C#语言之XmlSerializer类把复杂对象...
·C#语言之XmlSerializer类把对象序列...
·C#语言操作XML的DOM结构完成功能示例
·C#语言之Xml写入器XmlWriter类的使用...
·C#语言之Xml读取器XmlReader类使用示...
·C#语言之XML分析器对象XmlDocument类...
·C#泛型经典使用示例不可不学哟
·NET中的CLR是什么?解释执行和编译执...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)淘宝店铺一条街淘宝运动鞋淘宝网热门男装
网名:  验证码:  【所有评论】【↑返回顶部
评 分:12345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·C#怎么定义中文枚举及在代码...
·C#中Dictionary类的用法及用...
·C#操作文件的常用类及文件常...
·C#加速垃圾回收方法及引用类...
·C#怎么计算两个日期之间的间...
·List的GroupBy用法示例
·c#枚举转化示例大全,数字或...
·图解C#动态创建Access数据库...
·C#值类型和引用类型的对比(拆
·ASP.NET应用程序域AppDomain...
·C#抽象类可以包含虚方法吗?...
·C#安全读写文件的方法案例代...
推 荐 主 题
java专题.net开发php学习
数据库windows7Word技巧
天龙八部QQ技巧IT职场
javascriptPhotoShop 淘宝购物
图 文 推 荐
C#获取“我的文档”等系统路径字符串的代码C#获取“我的文档”等系统路径字符串的代码
C#泛型、接口、基类、继承混合使用的例子C#泛型、接口、基类、继承混合使用的例子
C#实现日期转换为大写代码C#实现日期转换为大写代码
热 门 文 章
·C#如何获取文件路径中的文件...
·最为经典的C#操作文件的方法...
·C#编程提示:未在本地计算机...
·c#实现excel数据高效导入到sq...
·c#操作Access数据库的方法大...
·实例讲解C#操作Xml文件的插入...
·C#生成XML文件代码一例
·c#中收发邮件处理代码(POP3,...
·C#对timer类的使用操作代码
·C#中操作XML Node节点细节操...
·如何用C#获取IP地址、子网掩...
·C#语言绘制实时曲线图代码实...
热 门 关 键 字
 网站首页 - 关于本站 - 加入收藏 - 网站地图 - 淘宝购物 - 在线留言 - 广告服务 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .