易截截图软件、单文件、免安装、纯绿色、仅160KB

C#实现XML系列化和反系列化的总结

常用的系列化定义(using System.Xml.Serialization;)
[XmlAttribute("name")]        // 定义<Tag name="…"></Tag>
[XmlElement("label")]        // 定义<label>…</label>
[XmlIgnoreAttribute()]        // 跳过系列化
[XmlElement("description", IsNullable = false)]        // 定义<description>…</description>,在属性值为null时不显示该元素,即可选
[XmlArray("temp_var_list", IsNullable=false)]        // 定义<temp_var_list><Tag>…</Tag>…<Tag>…</Tag></temp_var_list>,即数组对象的根结点
[XmlArrayItem("temp_var_item")]        // 定义<temp_var_item>…</temp_var_item>…<temp_var_item>…</temp_var_item>,即数据元素的根结点,常与XmlArray组合使用
[XmlRoot("dpd")]        // 定义要结点
几个注意事项
(1)需序列化的字段必须是公共的(public)
(2)需要序列化的类都必须有一个无参的构造函数
(3)枚举变量可序列化为字符串,无需用[XmlInclude]
(4)导出非基本类型对象,都必须用[XmlInclude]事先声明。该规则递归作用到子元素
 如导出ArrayList对象,若其成员是自定义的,需预包含处理:
 using System.Xml.Serialization;
 [XmlInclude(typeof(自定义类))]
(5)Attribute中的IsNullable参数若等于false,表示若元素为null则不显示该元素。
 也就是说:针对值类型(如结构体)该功能是实效的
 若数组包含了100个空间,填充了10个类对象,则序列化后只显示10个节点
 若数组包含了100个空间,填充了10个结构体对象,则序列化后会显示100个节点
(6)真正无法XML序列化的情况
 某些类就是无法XML序列化的(即使使用了[XmlInclude])
  IDictionary(如HashTable)
  System.Drawing.Color
  System.Drawing.Font
  SecurityAttribute声明
&


相关文档:

C#中实现WebBrowser控件的HTML源代码读写

趁周末想折腾一下嵌入ASP.NET的WinForm程序
需要用到WebBrowser控件的HTML源码读写
就把以前的一些代码片断移值到C#下
顺便发个帖子备忘,呵呵
  
思路其实很简单,直接通过document.documentElement.outerHTML
或者使用IPersistStreamInit接口直接对流进行处理
前者我就不废话了,后者实现方法如下
&nbs ......

C#.Net操作XML文件的数据

XML文件作为数据数据存储介质的一种,好处在于:任何的系统均可以解析它。
XML全称:Extensible Markup Language(扩展标记语言)使用文档类型定义(DTD)或者模式(Schema)来描述数据的。可供人阅读,而且还基于一种公共的开发标准。
最近由于开发的需要,也是研究以下XML的操作,本篇日志主要总结C#.NET中是如何操作XM ......

在MFC程序中使用XML文件配置工具栏

作者:朱金灿
来源:http://blog.csdn.net/clever101/
      现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界面美化,三是不利于人员分工,开发人员既要忙 ......

C#连接MySql数据库方法 宇兰

1、用MySQLDriverCS连接MySQL数据库
先下载和安装MySQLDriverCS,地址:http://sourceforge.net/projects/mysqldrivercs/在安装文件夹下面找到MySQLDriver.dll,然后将MySQLDriver.dll添加引用到项目中注:我下载的是版本是 MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0.exe using System;using System.Collectio ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号