做一个通用的XML序列化,支持所有类型


小知识:typeof(类型名)和实例.GetType()是什么?

typeof(类名):返回直指的System.Type对象,并可以通过Type对象访问基类及本类一些信息
GetType():是object类下实例方法,即无论是自己定义的类还是.net框架类都可以用此方法

如果想返回String类型的全类型形式,可以用typeof(String)

如果想返回对象string a=null;中实例a的类型,可以用a.GetType()

#region XML序列化

        public static void XmlSerialize(object type)
        {
 
            XmlSerializer xs = new XmlSerializer(type.GetType());
            Stream stream = new FileStream("c:\\zzl.XML", FileMode.Create, 
                            FileAccess.Write, FileShare.Read);
            xs.Serialize(stream, type);
            stream.Close();
        }
        public static object XmlDeserialize(Type type)
        {
            XmlSerializer xs = new XmlSerializer(type);

Stream stream = new FileStream("C:\\zzl.XML", FileMode.Open,

FileAccess.Read, FileShare.Read);

            object list = xs.Deserialize(stream) as object;
            stream.Close();
            return list;
        }

#endregion

本文转自博客园张占岭(仓储大叔)的博客,原文链接:做一个通用的XML序列化,支持所有类型,如需转载请自行联系原博主。

时间: 2024-10-21 21:07:38

做一个通用的XML序列化,支持所有类型的相关文章

怎么做一个通用的COM组件

问题描述 我在C#下面做了一个DLL,在其它C#项目中调用没有问题,最后我想公开COM,但细节上有很多不明白的地方,有没有大神帮我给一个详细的代码解说,我想在C++或JAVA中调用,能不能给一个例子出来,说细说明,不是网上百度的啊,百度了几篇我都没有看懂,最后结果出来都出错了的! 解决方案 解决方案二:公开COM?用来干嘛你确定你要的不是OCX?

HTML5使用Canvas做一个在线画图程序(支持把画布保存为图像)

1,在线画图板的开发 (1)页面加载后,我们取得<canvas>对象,为它添加一些处理函数,以便处理不同鼠标操作导致的JavaScript事件:onmousedown.onmouseup.onmouseout.onmousemove. (2)画布上方了两个工具栏可以选择笔画颜色和笔画粗细.点击里面的<img>元素,会调用对应绑定的方法,从而将 strokeStyle 属性设置不同的颜色,或将 lineWidth 属性设置不同的粗细. 在线Demo如下: <!DOCTYPE h

Digester:一个通用xml引擎的设计剖析

   一:Digester介绍    Digester是Jakarta 子项目Commons下的一个模块,支持基于规则的对任意XML文档的处理.它最初是Structs项目的 一部分,后因其通用性而划归Commons.    本文不是描述Digester如何使用,而是深入分析Digester的源码,对其设计进行分析,从而从中学到设计方法和一些设计 理念,正所谓"授人鱼,不如授人以渔".      二:不好的设计   Digester要解决的问题看起来很简单:根据xml文件定义,来生成指定

想做一个这样的通用窗体,供调用,不会,求大家看看

问题描述 在很多情况下,会用到这样的情景,比如一个textbox,然后点进去后,需要弹出一个模式窗体,跳出基本档案(客户档案,供应商档案)以便于选择,然后把选择的编码和名称返回给textbox,想做一个通用的这样的模式窗体,在调用时,只需要给模式窗体传入一个数据源以供选择,求解 解决方案 解决方案二:补充一下,不想用全局对象来存储返回值这种解决方案三:直接做成下拉框选择不行吗?解决方案四:一个窗体,上面放一个grid,为了省事,从数据库select时,把内容列起个相同的别名,这样就可以绑定到gr

.NET对象的XML序列化和反序列化

 序列化的概念 序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么也可以保存成文本串了.比如,一个计数器,数值为2,我们可以用字符串"2"表示.如果有个对象,叫做connter,当前值为2,那么可以序列化成"2",反向的,也可以从"2"得到值为2的计数器实例.这样,关机时序列化它,开机时反序列化它,每次开机都是延续的.不会都是从头开始. 序列化概念的提出和实现,可以使我们的应用程序的设置信息保存和读取更加方便

请救xml序列化对象,对象类中有一个public byte数组,怎么才能让他不被序列化

问题描述 请救xml序列化对象,对象类中有一个publicbyte数组,怎么才能让他不被序列化,按原字节输出如下<packge><id><bytes></bytes</packgebytes里放的是图片,我将图片二进制流放入进去,不想被序列化,因为客户端是c语言不能反序列化,怎么做呢. 解决方案 解决方案二:那就都不要序列化,自己按按结构写到流里面,对于流什么语言都是通用的解决方案三:引用1楼bdmh的回复: 那就都不要序列化,自己按按结构写到流里面,对于流

想用c#做一个小程序。要把oracle数据库里的某个表的昨日更新内容导出到xml中

问题描述 想用c#做一个小程序.要把oracle数据库里的某个表的昨日更新内容导出到xml中,现在还没点头绪,求大神指点 解决方案 解决方案二:数据库中的表增加两个字段"最后更新时间""最后更新人",然后就行了啊解决方案三:引用1楼xxoo2007的回复: 数据库中的表增加两个字段"最后更新时间""最后更新人",然后就行了啊 重要的不是数据库里面的操作.我是想用c#做个小程序,吧数据库里的表自动导成xml文件解决方案四:其实就

关于C# XML序列化的一个BUG的修改

原文:关于C# XML序列化的一个BUG的修改 关于C# XML序列化的一个BUG的修改 在我前一篇博客中提到用XML序列化作为数据库的一个方案,@拿笔小心 提到他们在用XML序列化时,遇到了一个比较严重的bug,即XML不闭合,系统不能正确的加载此XML.在我的开发经验中,也遇到过这样的问题.现在把这个BUG的描述及解决方案记录如下,也供遇到此BUG的朋友参考. BUG描述 这个BUG的出现也是比较诡异的,我们给客户做的一套系统,这个系统会把数据写到N个xml文件中,正常情况下都没有问题.直到

如何在.net 当中XML序列化一个Collection

Collection主要是指像Array, ArrayList, List, Dictionary, HashTable这 些数据类型,大家平时用的很多.如果一个类中有一个Collection类型的成员, 在对这个类进行XML序列化的时候,应该如何处理?应该说在.net当中这是比较 简单的,只要建立一个XmlSerializer类就可以帮你自动搞定,不过有的时候你 可能需要对自动的序列化过程施加更多的控制,比如XML的结构是实现固定的, 你必须按照要求去生成XML结构. 使用不同的属性可以灵活的