以前配置文件都直接写在TXT文件,能看懂就行;

后来写了点代码,就把配置写在ini文件里;

再后来随着趋势就把配置类序列化到本地,即xml配置;

现在懒了,直接ToJson到本地,需要时FromJson。

===== 2017.7.1===== 下面纪念下xml序列化

using System.IO;
using System.Xml.Serialization; namespace Downloader
{
public static class SerializeCfg
{
public static T DeserializeConfig<T>(this string path)
{
T result;
using (FileStream fs = File.OpenRead(path))
{
//读取文件
int nLength = (int)fs.Length;
byte[] byteArray = new byte[nLength];
fs.Read(byteArray, , nLength); using (MemoryStream stream = new MemoryStream(byteArray))
{
//返序列化
XmlSerializer reader = new XmlSerializer(typeof (T));
result = (T) reader.Deserialize(stream);
}
}
return result;
} /// <summary>
/// 序列化服务到持久设备
/// </summary>
public static void SerializeConfig<T>(this T obj, string path)
{
//序列化到内存
XmlSerializer writer = new XmlSerializer(typeof(T));
using (MemoryStream ms = new MemoryStream())
{
writer.Serialize(ms, obj); byte[] byteArray = ms.ToArray(); //保存数据到文件
using (FileStream fs = File.Create(path))
{
fs.Write(byteArray, , byteArray.Length);
}
} }
}
}

XmlSerialize的更多相关文章

  1. C# 知识特性 Attribute,XMLSerialize,

    C#知识--获取特性 Attribute 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体关联后,可在运行时使用“反射”查询特性,获取特性集合方 ...

  2. XmlSerialize error: There was an error generating the XML document.

    今天遇到一个很火的问题, 一个c#的class 序列化成xml后抛出异常, 信息为: XmlSerialize error: There was an error generating the XML ...

  3. C# 知识特性 Attribute

    C#知识--获取特性 Attribute 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体关联后,可在运行时使用"反射"查询 ...

  4. 在.net中读写config文件的各种方法

    阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...

  5. XML序列化和反序列化

    上篇总结了下JSON的序列化和反序列化,博园中大牛给了很多牛叉的评论,学习了不少. 不过在上篇中忘了把json序列化和反序列化的另外一种方式写上去了,这里做个简单的补充: Json篇:http://w ...

  6. C#中xml操作

    序列化成一个字符串: public static string XMLSerialize<T>(T entity) { StringBuilder buffer = new StringB ...

  7. c# json TO xml

    using System.IO;using System.Text;using System.Xml.Serialization;using System.Xml;using System.Runti ...

  8. 如何查看oracle数据库的所有的关键字

    管理员账户登录后,执行以下命令:  select * from v$reserved_words 附上参考: NOMONITORINGRECORDS_PER_BLOCKCASCADEDYNAMIC_S ...

  9. web开发过程中经常用到的一些公共方法及操作

    进化成为程序猿也有段岁月了,所谓的经验,广度还是依旧,只不过是对于某种功能有了多种实现方式的想法.每天依旧不厌其烦的敲打着代码,每一行代码的回车似乎都有一种似曾相识的感觉.于是乎:粘贴复制,再粘贴再复 ...

随机推荐

  1. selenium爬取网易云

    from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.c ...

  2. SDOI2013直径(树的直径)

    题目描述: 点这里 题目大意: 就是在一个树上找其直径的长度是多少,以及有多少条边满足所有的直径都经过该边. 题解: 首先,第一问很好求,两边dfs就行了,第一次从任一点找距它最远的点,再从这个点找距 ...

  3. [HNOI2003]消防局的设立(树上距离为k的最小覆盖问题)

    题目的大概意思现在有一棵树,在树上找半径小于等于2的最小覆盖点的最小个数. 题目链接 讲一讲此类题的贪心策略: 就是每次寻找最低没有被覆盖的点,显然对于覆盖它的所有点中,在他的祖先处设立一个点最优.所 ...

  4. Ubuntu16.04中把默认JAVA设置为Oracle的JDK!

    系统当中已经存在了OpenJDK,默认的JDK是它,并不是Oracle的JDK,执行下面操作就可以把Oracle的JDK设置为默认的了! 首先假设我们已经把Oracle的JDK安装和配置好了,但是就是 ...

  5. ListView ,GridView 通用适配器

    前言 接近半年的时间没有写博客了,今年公司的项目有点多,比较忙,没时间写,这是其一.其次是,这半年来,有时间的时候,我都会看看自己以前写的博客,也许是以前刚刚写博客,经验不足,感觉写出来的博客质量很不 ...

  6. iOS核心动画之视觉效果

    圆角 cornerRadius确定圆角的大小 masksToBounds确定要不要裁减圆角以外的界面 图层边框 borderWidth 边框的粗细,point是衡量值. borderColor 边框的 ...

  7. webpack2的一些使用入门

    首先创建一个webpack文件夹我取名叫webpackVue(为了后续把vue集成进来) 1.首先用npm初始化一下,在这个目录下,执行npm init 2.npm install webpack - ...

  8. 使用百度地图API查地理坐标

    在网络编程中,我们会和API打交道.那么,什么是API?如何使用API呢?本文分享了一下我对API的理解以及百度地图API的使用. API是"Application Programming ...

  9. linux入门 配置网络

    我因为有自己的ssr,因此想让虚拟机共享我的ssr,并且不想搞的太麻烦,特此记录一下 1. 获取本机的ip 在命令行里输入ipconfig /all 获取本机IP,如下图所示,我本机ip为10.3.7 ...

  10. java web 工程创建及servlet简单使用

    1.java web工程创建 (1)File--->new--->project (2)选择java enterprise,按照下图操作 (3)点击next后,会进入如下界面,修改工程名后 ...