序列化是将一个对象保存到存储介质上或者将对象进行转换使之能够在网络上传送的行为。在一个对象被序列化之后,你会想要将它反序列化,也就是将数据重新转换为可用的对象的行为。这种类型的功能被用在一个对象必须被从一个上下文封送到另一个上下文的时候,例如当对象跨越App域的时候。另外一个例子是Web服务——对象在服务器上被序列化,通过网络被(封送或)发送到的客户端,然后被反序列化成有用的对象。
从二进制到XML,.NET框架为开发人员提供了很多序列化选项,甚至允许开发人员创建自己的序列化例程。在本文中,我将着重讨论XML的序列化,并告诉你如何利用这一内置的功能。
XML序列化
.NET框架提供的一种形式的序列化是XML序列化。在这种类型的序列化里,对象状态被以XML格式保存。这使得被序列化的对象能够被不同的系统取得并修改,甚至是那些不是用.NET编写的系统。另外一个优势是被序列化的对象对于人来说是可读和可写的——因此更新对象的方式莫过于打开写字板更改其值。
XML序列化常常被来远程控制项目和Web服务项目里,虽然你可能会在别的地方发现它,比如DataSet封送。在与Xpath查询和Predicate方法一起使用的时候,XML序列化能够被用来实现面向对象的数据库——我会在今后的文章里谈这方面的内容。
使用XML序列化
在.NET框架里利用内置的XML序列化方法相对较为容易。你只需要熟悉一些类和属性就可以开始使用简单的XML序列化了:
System.Xml.Serialization命名空间:含有使用XML序列化所需要的类和功能。这个命名空间应该被放在使用XML序列化的类的顶部的一个“using”命令里。
XmlSerializer类:提供将对象序列化和反序列化的功能。
XmlIgnore属性:告诉XmlSerializer类跳过你不希望序列化的成员。
这个列表只不过让你对序列化有一个初步的了解。还有更多的对象可以供你在使用XML序列化的时候使用。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Serialization;
using System.IO;
namespace 对象的xml序列化
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
emp ei = new emp();
ei.a = "测试a";
ei.b = "测试b";
XmlSerializer xmls = new XmlSerializer(typeof(emp));
StringWriter sw = new StringWriter();
xmls.Serialize(sw, ei);
MessageBox.Show(sw.ToString());
}
}
public class emp
{
public string a;
public string b;
public emp()
{ }
}
}
分享到:
相关推荐
主要介绍了c#正反序列化XML文件示例,可以将对象序列化为XML文本或者文件,或者将XML文件或文本反序列化为对象,要求进行序列化的对象不能出现序列化异常,支持类的嵌套,要求类的属性为public
实现了将XML文件内容序列化为实体类对象 将实体类对象反序列化为XML文件。
1.对象序列化的介绍 (1).NET支持对象序列化的几种方式二进制序列化:对象序列化之后是二进制形式的,通过BinaryFormatter类...XML序列化:对象序列化之后的结果是XML形式的,通过XmlSerializer 类来实现的,这个类位于S
将xml反序列化为类,将类序列化为xml,可以高效的处理比较复杂的xml对象之间的关系,将复杂的xml转化为类,方便处理;
序列化为对象 从二进制文件中反序列化 序列化为soap 即xml 反序列对象 从xml序列中反序列化 调用示例 文件化XML序列化 文件化XML反序列化 文本化XML序列化 文本化XML反序列化 SoapFormatter序列化 SoapFormatter反...
.Net Framework提供了对应的System.Xml.Seriazliation.XmlSerializer负责把对象序列化到XML,和从XML中反序列化为对象。Serializer的使用比较直观,需要多注意的是XML序列化相关的Attribute,怎么把这些attribute...
在本篇文章里小编给大家整理的是关于C#中将xml文件反序列化为实例时采用基类还是派生类的知识点讨论,有需要的朋友们学习下。
20120102 NET XML序列化为实体类与反序列化 本人收藏了3年的资源 现放出 都是总结了很多系统 软件项目实施过程中的经验的 慢慢积累的
在我们深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,它又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的...
小编今天研究了在Unity3D中的数据持久化问题。...在.NET中我们可以将对象序列化为Xml、Json、二进制。然后通过反序列化重新获得对象。同样,在Android中我们可以通过使用Preferences来存储键值型数
类似 google protobuf,用于序列化/反序列化 c 结构体。支持序列化为 xml/json/binary 3 种格式。
最全面的序列化与反序列化。序列化为对象、XML、字符串等操作.[通用类]
所有类都可以序列化为JSON / JSON-LD和XML,通常用于表示html页面head结构化数据。 简单的例子 var website = new WebSite () { AlternateName = " An Alternative Name " , Name = " Your Site Name " , Url = ...
月球解析器用于 C# 的 XML/JSON/YAML/CSV 解析器。为什么是月球解析器?... 还有一些实用方法可以在数据节点和字典之间来回转换,甚至以通用方式将对象序列化为 DataNode。安装 PM> Install-Package Lun
第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储。 可以使用[Serializable]属性将类标志为可序列化的。如果某个类的元素不想被序列化,1、可以使用[NonSerialized]...
XML中的Web对象(序列化器)提供了Java和C#对象的简单XML序列化。 对象被序列化为标准XML格式的文件。 然后可以将它们反序列化为Java或C#。
本篇主要介绍了C#序列化总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
该库用于从XML反序列化对象。 它减少了需要编写的代码,并确保您不会遇到无法预见的错误。 创建该库是为了使其易于使用Linq to XML查询。 提供的扩展方法使开发人员可以使用流畅,类型安全,优雅的语法来创建Linq...
序列化帮助类,Xml序列化,Json序列化,SoapFormatter序列化,BinaryFormatter序列化 27.压缩解压缩 SharpZip 28.验证码 YZMHelper Captcha 验证码类,一个很个性的验证码类 29.页面辅助类 HTMLHelper ...