XML串行化数据基础

xml|数据

  XML文档使用越来越普遍,我们常会把一些系统设置等文件用config或XML文档存文在程序目录下。.Net的串行化数据是一个很令人心动的技术,可以很方便地读取一定格式或保存成文件。下面做个简单了练习,对XML串行化作些初步了解。(注:我是在WINDOWS应用程序上做的练习,因怕建立ASP.NETA工程麻烦,下面一大堆东西。其实除了路径外,程序写法基本一致)。

  先编写一个需要串行化的类,该类是设置一个操作权限的设置文件

  using System;

  namespace Hellosea.WinModule.Account.Configuration
  {
      /// <summary>
      /// OperatePermissionSettings 的摘要说明。
      /// </summary>
      public class OperatePermissionSettings
      {
          public OperatePermissionSettings()
          { }

        public int SystemManage_Login;                    // 允许进入管理页面,为各管理角色所拥用的许可
        public int SystemManage_SystemSetting;        // 可以进行系统参数、安全等设置的许可

        public int UserManage_Enter;                    // 进入用户管理页面的许可
        public int UserManage_PurviewAssign;        // 可以分配或收回用户角色、许可等的权限
        public int UserManage_UserDelete;            // 可以中止用户帐号的许可
        public int UserManage_UserEdit;                // 可以编辑用户信息的许可
      }
  }

  串行化该类,并保存文件:

  private void button1_Click(object sender, System.EventArgs e)
  {
      // 建立操作权限类
      OperatePermissionSettings settings = new OperatePermissionSettings();
      settings.SystemManage_Login = 1;
      settings.SystemManage_SystemSetting = 2;
      settings.UserManage_Enter = 3;
      settings.UserManage_PurviewAssign = 4;
      settings.UserManage_UserEdit = 5;
      settings.UserManage_UserDelete = 6;

      // 文件流
      string filePath = Application.StartupPath + "\\OperatePermission.Config";
      FileStream fs = new FileStream(filePath, FileMode.Create);

      // 串行化数据
      XmlSerializer serializer = new XmlSerializer(typeof(OperatePermissionSettings));
      serializer.Serialize(fs, settings);

      // 关闭文件流
      fs.Close();
  }

  反串行化,从文件中读取数据

  private void button2_Click(object sender, System.EventArgs e)
  {
      OperatePermissionSettings settings = new OperatePermissionSettings();

      // 文件流
      string filePath = Application.StartupPath + "\\OperatePermission.Config";
      FileStream fs = new FileStream(filePath, FileMode.Open);

      // 反串行化数据
      XmlSerializer serializer = new XmlSerializer(typeof(OperatePermissionSettings));
      settings = (OperatePermissionSettings)serializer.Deserialize(fs);
            
      // 关闭文件流
      fs.Close();

      textBox1.Text = settings.SystemManage_Login.ToString();
      textBox2.Text = settings.SystemManage_SystemSetting.ToString();
      textBox3.Text = settings.UserManage_Enter.ToString();
      textBox4.Text = settings.UserManage_PurviewAssign.ToString();
      textBox5.Text = settings.UserManage_UserEdit.ToString();
      textBox6.Text = settings.UserManage_UserDelete.ToString();
  }

  当然需要用到二个命名空间
  using System.IO;
  using System.Xml.Serialization;

  另外OperatePermission.Config文档的结构如下:
  <?xml version="1.0"?>
  <OperatePermissionSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <SystemManage_Login>1</SystemManage_Login>
      <SystemManage_SystemSetting>2</SystemManage_SystemSetting>
      <UserManage_Enter>3</UserManage_Enter>
      <UserManage_PurviewAssign>4</UserManage_PurviewAssign>
      <UserManage_UserDelete>6</UserManage_UserDelete>
      <UserManage_UserEdit>5</UserManage_UserEdit>
  </OperatePermissionSettings>

  这是最简单的串行化,只作个范例。真正实现时,最好能对该方法用类包装起来,使用起来会有非常好的可读性。

时间: 2024-09-07 03:41:00

XML串行化数据基础的相关文章

XML串行化数据的基础

xml|数据 XML文档使用越来越普遍,我们常会把一些系统设置等文件用config或XML文档存文在程序目录下..Net的串行化数据是一个很令人心动的技术,可以很方便地读取一定格式或保存成文件.下面做个简单了练习,对XML串行化作些初步了解.(注:我是在WINDOWS应用程序上做的练习,因怕建立ASP.NETA工程麻烦,下面一大堆东西.其实除了路径外,程序写法基本一致). 先编写一个需要串行化的类,该类是设置一个操作权限的设置文件 using System; namespace Hellosea

.NET使XML串行化易如反掌

xml   人们一直高喊XML是解决系统互联问题的关键, 而.NET framework 也为处理XML数据提供了许多不同的类库. XmlDocument 类能让你像处理文件一样处理XML 数据, 而XmlReader, XmlWriter, 和它们的派生类使你能够将XML 数据做为数据流处理. XmlSerializer 则提供了另外的方法, 它使你能够将自己的对象串行和反串行化为XML. 串行化数据既能够让你像处理文件一样对数据进行随机存取, 同时又能够跳过你不感兴趣的元素. 在本文中, 我

xml串行化读入和存储数组

问题描述 XmlSerializer:xml串行化读入和存储数据时,怎么对数组进行操作.e.g.classOprator{publicOprator(}{AllPos=newPos[5];for()...//实例化Serializer时,数组保存后,名称都是Pos.当再次读取的时候就不能正确读取.<Pos><p><X>0</X><Y>0</Y></p></Pos><Pos><p><

使用MFC串行化数据和C++对象

串行化数据 --例子程序:Memo 创建一个新的单文档 SDI 应用,视图类选择 CFormView,以便用户可以在窗口中输入. 在界面中创建三个编辑框,然后再添加三个相应的编辑框变量.这三个变量是视图类的成员变量,为了交互数据,文档类中也要创建三个对应的变量.然后,文档类和视图类都要对数据成员进行初始化操作,在文档类中这个工作通常都在 OnNewDocument() 函数中进行.因为下面任何一个操作发生时都触发文档类 OnNewDocument()函数执行: 当用户启动应用程序: 当用户在"F

第十三节--对象串行化_php基础

/* +-------------------------------------------------------------------------------+ | = 本文为Haohappy读<<Core PHP Programming>>  | = 中Classes and Objects一章的笔记  | = 翻译为主+个人心得  | = 为避免可能发生的不必要的麻烦请勿转载,谢谢  | = 欢迎批评指正,希望和所有PHP爱好者共同进步!  | = PHP5研究中心: 

php面向对象全攻略 (十六) 对象的串行化_php基础

把对象串行化 有时候需要把一个对象在网络上传输,为了方便传输,可以把整个对象转化为二进制串, 等到达另一端时,再还原为原来的对象,这个过程称之为串行化,就像我们现在想把一辆汽 车通过轮船运到美国去,因为汽车的体积比较大,我们可以把汽车拆开成小的部件,然后我们把这些部件通过轮般运到美国去,到了美国再把这些部件组装回汽车. 有两种情况我们必须把对象串行化,第一种情况就是把一个对象在网络中传输的时候要 将对象串行化,第二种情况就是把对象写入文件或是数据库的时候用到串行化. 串行化有两个过程,一个是串行

利用XMLSerializer将对象串行化到XML_XML/RSS

    微软已经意识到串行化数据的重要性,因此在.NET框架中包含了命名空间System.Runtime.Serialization和System.Xml.Serialization以提供串行化功能,为用户自己编写串行化方法提供了一个框架.System.Xml.Serialization命名空间提供了将一个对象串行化为XML格式的基本方法.下面我们来看看如何使用这种方法. XML的魅力     串行化XML是指为了方便存储或传输,把一个对象的公共的域和属性保存为一种串行格式(这里是XML格式)的

第十三节 对象串行化 [13]_php基础

串行化可以把变量包括对象,转化成连续bytes数据. 你可以将串行化后的变量存在一个文件里或在网络上传输. 然后再反串行化还原为原来的数据. 你在反串行化类的对象之前定义的类,PHP可以成功地存储其对象的属性和方法. 有时你可能需要一个对象在反串行化后立即执行. 为了这样的目的,PHP会自动寻找__sleep和__wakeup方法. 当一个对象被串行化,PHP会调用__sleep方法(如果存在的话). 在反串行化一个对象后,PHP 会调用__wakeup方法. 这两个方法都不接受参数. __sl

PHP中的串行化变量和序列化对象_php基础

串行化大概就是把一些变量转化成为字符串的字节流的形式,这样比较容易传输.存储.当然,关是传输存储没有什么,关键是变成串的形式以后还能够转化回来,而且能够保持原来数据的结构. 在PHP中有多串行化处理的函数:serialize(),该函数把任何变量值(除了资源变量)转化为字符串的形式,可以把字符串保存到文件里,或者注册为Session,乃至于使用curl来模拟GET/POST来传输变量,达到RPC的效果. 如果要将串行化的变量转化成PHP原始的变量值,那么可以使用unserialize()函数.