.net读写配置文件

在网站或应用程序时,经常会用到配置文件,而这些配置文件一般多是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"; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值