在网站或应用程序时,经常会用到配置文件,而这些配置文件一般多是xml文档,在开发配置文件过程中,可以采用下面的思路:
     每个配置文件对应一个实体类,添加配置文件内容时,就new一个配置实体类并给这个类的属性进行赋值,然后【序列化】为xml,接着保存到文件;
     读取时,直接读取前面序列化的xml文档,然后【反序列化】为对应的实体类,通过对实体类的访问以得到配置文件。用到的主要函数:

设置保存配置信息:

/// <summary> /// 更新配置信息,将配置信息对象序列化至相应的配置文件中,文件格式为带签名的UTF-8 /// </summary> /// <typeparam name="T">配置信息类</typeparam> /// <param name="config">配置信息</param> public static void UpdateConfig<T>(T config) { if (config == null) { return; } Type configClassType = typeof(T); string configFilePath = GetConfigPath<T>();//根据配置文件名读取配置文件 try { XmlSerializer xmlSerializer = new XmlSerializer(configClassType); using (XmlTextWriter xmlTextWriter = new XmlTextWriter(configFilePath, System.Text.Encoding.UTF8)) { xmlTextWriter.Formatting = Formatting.Indented; XmlSerializerNamespaces xmlNamespace = new XmlSerializerNamespaces(); xmlNamespace.Add(string.Empty, string.Empty); xmlSerializer.Serialize(xmlTextWriter, config, xmlNamespace); } } catch (SecurityException ex) { throw new SecurityException(ex.Message, ex.DenySetInstance, ex.PermitOnlySetInstance, ex.Method, ex.Demanded, (IPermission)ex.FirstPermissionThatFailed); } }

读取配置信息:

/// <summary> /// 获取配置信息 /// </summary> /// <typeparam name="T">配置信息类</typeparam> /// <returns>配置信息</returns> public static T GetConfig<T>() where T : class, new() { Type configClassType = typeof(T); string configFilePath = GetConfigPath<T>();//根据配置文件名读取配置文件 if (File.Exists(configFilePath)) { using (XmlTextReader xmlTextReader = new XmlTextReader(configFilePath)) { XmlSerializer xmlSerializer = new XmlSerializer(configClassType); configObject = xmlSerializer.Deserialize(xmlTextReader); } } T config = configObject as T; if (config == null) { return new T(); } else { return config; } }

/// <summary> /// 获取配置文件的服务器物理文件路径 /// </summary> /// <typeparam name="T">配置信息类</typeparam> /// <returns>配置文件路径</returns> public static string GetConfigPath<T>() { string path = ("E://Config//"); return path + typeof(T).Name + ".config"; }

转载于:https://www.cnblogs.com/zhangqs008/archive/2011/05/21/2341132.html

.net读写配置文件相关推荐

  1. .Net2.0 使用ConfigurationManager读写配置文件

    .net1.1中如果需要灵活的操作和读写配置文件并不是十分方便,一般都会在项目中封装一个配置文件管理类来进行读写操作.而在.net2.0中使用ConfigurationManager 和WebConf ...

  2. python学习笔记之编写readConfig读写配置文件

    python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客

  3. 一个用于读写配置文件的类

    一个用于读写配置文件的类 该类适应读写如下格式的.xml,.config文档 <?xml version="1.0" encoding="utf-8" s ...

  4. 如何在MFC中读写配置文件

    如何在MFC中读写配置文件 在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI ...

  5. python-ConfigParser模块【读写配置文件】

    对python 读写配置文件的具体方案的介绍 1,函数介绍 import configParser 如果Configparser无效将导入的configParser 的C小写 1.1.读取配置文件 - ...

  6. python写配置文件方法_Python读写配置文件的方法

    本文实例讲述了Python读写配置文件的方法.分享给大家供大家参考.具体分析如下: python 读写配置文件ConfigParser模块是python自带的读取配置文件的模块.通过他可以方便的读取配 ...

  7. python:实例化configparser模块读写配置文件

    之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...

  8. Python 读写配置文件模块: configobj 和 configParser

    参考:http://www.voidspace.org.uk/python/configobj.html Python模块之ConfigParser - 读写配置文件:http://www.cnblo ...

  9. python自动化读取和写入文件_基于Python的接口自动化实战-基础篇之读写配置文件...

    引言 在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值.为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变 ...

  10. 自由读写配置文件的艺术[java c++ node](二)

    为何要自己写配置文件 1 解决引入很多库的问题 2 解决流程问题而非语言问题 3 学会简化问题 读写配置文件的知识 一下是一个txt配置文件,注意文件格式,如果我们在utf8 文件下读写,分为两种,一 ...

最新文章

  1. python整数类型在每一台计算机上的取值范围是一样的_第四章、Python数据类型
  2. 自已写的几个分页的存储过程
  3. Linux (Ubuntu) 命令
  4. java 访问权限控制
  5. 你要好好的---歌词
  6. Atitit  技术经理职责与流程表总结
  7. parallels恢复linux密码,在Parallels Desktop中忘记Windows密码怎么办 Parallels Desktop忘记Windows密码的解决方法...
  8. IPC通信:互斥锁和条件变量
  9. FPGA实现数字相敏检波(DPSD)
  10. 怎么下载全国水系图层
  11. 荣耀6plus安装linux程序,华为 荣耀6Plus驱动程序下载和安装
  12. IT行业,一年最痛苦的事莫过于没有年终奖
  13. 支持向量机的特点,优点缺点
  14. 关于Nginx服务器的一些粗略认识
  15. JAVA:基本运算符及应用:这是一个闰年吗?
  16. 快捷方式 ABP——切换MySQL数据库
  17. PHP 图片去除水印 去除logo
  18. Matlab绘图-详细全面(图)
  19. k8s1.18 StorageClass 使用rbd-provisioner提供ceph rbd持久化存储
  20. matlab如何在文中定义函数

热门文章

  1. ime-mode:disabled 禁止表单使用文本框输入法
  2. 常用打开新页面的方法
  3. 如何搭建Electron开发环境
  4. Codeforces A - Bear and Prime 100(交互题)
  5. cocos2dx游戏--欢欢英雄传说--添加游戏背景
  6. Oldboy28期linux决心书
  7. 基本算法--冒泡排序
  8. Maven系列二setting.xml 配置详解
  9. sqlite 修改表名,合并数据库(文件)
  10. IN和EXISTS的性能对比结论