XML序列化/反序列化数据库形式保存和读取。

直接上码:

首先创建class1类

public class Class1
    {

        public string name { get; set; }
        public int age { get; set; }
        public bool sex { get; set; }
    }

实例化class1对象并进行序列化和反序列化

 static void Main(string[] args)
        {
            //实例化class1类
            Class1 c1 = new Class1() { name = "jia", age = 18, sex = true };

            //序列化(class1为反序列化已知对象)
            XmlSerializer ser = new XmlSerializer(typeof(Class1));

            // MemoryStream类是创建缓存以byte的形式临时存储数据
            MemoryStream ms = new MemoryStream(); 

            //将序列化对象c1序列化后缓存到ms对象中
            ser.Serialize(ms, c1);

            //将缓存数据以utf8编码的形式读取并存入string对象(要保存的对象)
            string xmlString = Encoding.UTF8.GetString(ms.ToArray());

            //释放缓存
            ms.Dispose();

            //反序列化(class1为反序列化已知对象)
            XmlSerializer dser = new XmlSerializer(typeof(Class1));

            //读取到的以byte的形式存储的数据并以utf8编码的形式读取并存入string对象
            Stream xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString));

            //进行反序列化并转换为类对象
            Class1 c2 = dser.Deserialize(xmlStream) as Class1;
            Console.Read();
        }
时间: 2024-08-06 16:40:08

XML序列化/反序列化数据库形式保存和读取。的相关文章

XML序列化反序列化—常用类

public class XMLSerializer    {        #region (public) xml序列化        /// <summary>        /// xml序列化        /// </summary>        /// <param name="obj">obj类</param>        /// <returns>string字符串</returns>    

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

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

C#操作XML序列化与反序列化

1 public class XmlSerializerHelper 2 { 3 /// <summary> 4 /// 从XML文件中反序列化读取对象 5 /// </summary> 6 /// <typeparam name="T"></typeparam> 7 /// <param name="filePath"></param> 8 /// <param name="r

XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置

这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对象如果需要传递给其他系统使用:或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化. 范围:本文只介绍xml序列化,其实序列化可以是二进制的序列化,也可以是其他格式的序列化. 看一段最简单的Xml序列化代码 1 2 3 4 5 6 7 8 9 10 11 12 class Prog

Xml序列化、反序列化帮助类

之前从网络上找了一个Xml处理帮助类,并整理了一下,这个帮助类针对Object类型进行序列化和反序列化,而不需要提前定义Xml的结构,把它放在这儿供以后使用 1 /// <summary> 2 /// 功能:Xml序列化.反序列化帮助类 3 /// 说明: 4 /// 创建人: 5 /// 创建时间:2014年3月13日 6 /// </summary> 7 public static class XmlHelper 8 { 9 /// <summary> 10 ///

C# XmlSerializer 对象的Xml序列化和反序列化

.Net程序执行时,对象都驻留在内存中:内存中的对象如果需要传递给其他系统使用:或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化. System.Xml.Serialization命名空间中有一系列的特性类,用来控制复杂类型序列化.例如XmlElementAttribute.XmlAttributeAttribute.XmlArrayAttribute.XmlArrayItemAttribute.XmlRootAttribute等等. 可以使用XmlElement指定属性序

0016-Avro序列化&反序列化和Spark读取Avro数据

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.简介 本篇文章主要讲如何使用java生成Avro格式数据以及如何通过spark将Avro数据文件转换成DataSet和DataFrame进行操作. 1.1Apache Arvo是什么? Apache Avro 是一个数据序列化系统,Avro提供Java.Python.C.C++.C#等语言API接口,下面我们通过java的一个实例来说明Avro序列化和反序列化数据. 支持丰富的数据结构 快速可压缩的二进制数据格式 存储持久数据的

JSON、XML序列化与反序列化

序列化pa := &Address{"家","太原","中国"}wa := &Address{"工作","昆山","江苏"}vc := &VCard{"王","剑英",[]*Address{pa,wa},"啊哈哈"}js,_ := json.Marshal(vc)//编码生成js([]byte),在Web

XML 序列化与反序列化

XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary> /// 对象序列化成XML文件 /// </summary> /// <param name="type">对象类型</param> /// <param name="obj">对象</param> /// <param name="fileName">序列化的XML文件路径<