</pre><pre code_snippet_id="613717" snippet_file_name="blog_20150307_1_5795040" name="code" class="csharp">
/// <summary>
/// 持久化对象为XML文件
/// </summary>
public class MyXmlSerializer
{ /// <summary>
/// 序列化对象
/// </summary>
/// <param name="o">对象</param>
/// <param name="outFile">持久化对象文件</param>
/// <returns></returns>
public static bool Serialize(object o, string outFile)
{
using (StringWriter sw = new StringWriter())
{
XmlSerializer xz = new XmlSerializer(o.GetType());
xz.Serialize(sw, o);
File.WriteAllText(outFile, sw.ToString(), Encoding.UTF8);
} return true;
} /// <summary>
/// 反序列化为对象
/// </summary>
/// <param name="type">对象类型</param>
/// <param name="s">持久化对象文件</param>
/// <returns></returns>
public static object Deserialize(Type type, string file)
{
string content = File.ReadAllText(file); using (StringReader sr = new StringReader(content))
{
XmlSerializer xz = new XmlSerializer(type);
return xz.Deserialize(sr);
} }
}

使用方法:

/// <summary>
/// 获取历史记录, 反序列化
/// </summary>
/// <returns></returns>
public static VersionHistory GetVersionHistory()
{
string versionFile = Application.StartupPath XML_FILE;
if (File.Exists(versionFile))
{
object o = MyXmlSerializer.Deserialize(typeof(VersionHistory), versionFile);
return o as VersionHistory;
}
else
return new VersionHistory();
} /// <summary>
/// 保存历史记录,序列化
/// </summary>
public void Save()
{
string versionFile = Application.StartupPath XML_FILE;
MyXmlSerializer.Serialize(this, versionFile);
}

C#.Net 持久化对象为XML文件的更多相关文章

  1. C#对象与XMl文件之间的相互转换

    C#提供三种序列化方式,分别为: 1.是使用BinaryFormatter进行串行化: 2.使用SoapFormatter进行串行化: 3.使用XmlSerializer进行串行化.其中对于Binar ...

  2. C#对象与XMl文件之间的相互转换(转)

    本文是对C#中对象与XMl文件之间的相互转换进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 C#提供三种序列化方式,分别为:1.是使用BinaryFormatter进行串行化: 2.使 ...

  3. 使用XPath对象解析xml文件

    使用XPath对象解析xml文件 1.DocumentBuilderFactory类  工厂API,使应用程序能从XML文档获取生成DOM对象树的解析器 其构造方法受保护,用newInstance() ...

  4. 对象和XML文件的转换

    很多时候,我们开发程序都需要使用到对象的XML序列化和反序列化,对象的XML序列化和反序列化,既可以使用XML对象(XmlDocument)进行操作,也可以使用XmlSerializer进行操作,两个 ...

  5. js将xml对象,xml文件解析成xml dom对象,来对对象进行操作

    由于ie与其他的浏览器对于xml文件的解析方式不同,所以有不同的解析方式 1.1 IE解析xml文件的方式 var xmlDoc=new ActiveXObject("Microsoft.X ...

  6. xml文件生成方式一(字符串拼接,将多实体类对象写入xml文件)

    1.xml文件生成,拼接字符串使用StringBuffer或StringBuilder 2.拼接好后写入文件即可,将多个实体类写入xml文件 3.这种方式比较简单,但是操作也比较麻烦 4.下面是我的代 ...

  7. SharedPreference对象及其xml文件

    SharedPreferences对象----->getXXX SharedPreferences.Editor对象---->putXXX

  8. Marshaller根据对象生成xml文件

    创建Girl.java类 import java.util.List; import javax.xml.bind.annotation.*; @XmlAccessorType(XmlAccessTy ...

  9. 详解xml文件描述,读取方法以及将对象存放到xml文档中,并按照指定的特征寻找的方案

    主要的几个功能: 1.完成多条Emp信息的XML描述2.读取XML文档解析Emp信息3.将Emp(存放在List中)对象转换为XML文档4.在XML文档中查找指定特征的Emp信息 dom4j,jaxe ...

随机推荐

  1. 第三次作业(1) Visual Studio程序安装过程和练习过程

    Visual Studio程序安装过程和练习过程 第一步 首先要在网上找一个VS2013的安装包,之后我安装在D盘上,C盘上也需要有5.2G空间,勾选相应的选项,才能继续安装. 安装的过程很漫长,接近 ...

  2. 如何在java项目中使用lucene

    lucene是一个开源的全文检索引擎工具包,但它不是一个成型的搜索引擎,它的功能就是负责将文本数据按照某种分词算法进行分词,分词后的结果存储在索引库中,然后根据关键字从索引库检检索. 那么应该如何使用 ...

  3. PolarCode

    什么是polar code极化码 为了实现可靠的信号传输,编码学家在过去的半个多世纪提出多种纠错码技术如里所码(RS码).卷积码,Turbo码等,并在各种通信系统中取得了广泛的应用.但是以往所有实用的 ...

  4. 阅读<构建之法>13、14、15、16、17章

    13章 这么多测试为什么不能整理出一个包括所有功能的测试呢?看着那么多测试都感觉奇怪了. 14章 怎样才能体现一个测试人员的工作价值呢?这样的判断又是否会太独断了? 15章 在时间上,会不会因不同功能 ...

  5. [转]java实现,输入数据,空格继续,回车结束输入

    普通版:可输入,可输出.带详细的注释 import java.util.Scanner; public class SumDemo { public static void main(String[] ...

  6. 自定义视图(SpringMVC)

    一.首先理解视图的解析过程 1)请求处理方法执行完成后,最终返回一个 ModelAndView 对象. ModelAndView 对象,它包含了逻辑名(访问URL)和模型对象(javaBean数据)的 ...

  7. Linux查看版本

    最简单的命令 lsb_release -a 查看机器名 hostname 查看内核版本 uname -r 红帽 centos 查看版本 cat /etc/redhat-release ubuntu 查 ...

  8. [转载]以及部分总结--Linux下创建单机ASM存储的Oracle实例的过程---感谢方总

    Linux下单机安装ASM流程总结 一.安装Linux ESXi上传iso镜像至存储目录 创建虚拟机,并且选择主机设备的ISO启动 选择完成时编辑虚拟机设置 配置镜像文件如下: 打开控制台: 并且选择 ...

  9. ubuntu软件安装位置

    有时候需要配置ubuntu安装的软件,一般安装软件都是使用apt-get install.那么安装完后,软件的安装目录在哪里呢,可执行文件又放在哪里呢. A.下载的软件的存放位置:/var/cache ...

  10. adminlte前端框架从入门到精通

    第一 下载 admintle的下载地址为: https://github.com/almasaeed2010/AdminLTE/releases 参考实例文件代码: 例如:AdminLTE-2.4.3 ...