之前项目中大多数的配置文件都是用的xml文档,但是全部使用xml文档就会过于繁琐,而且对于一些工具应用程序,只需要简单的配置即可,所以就把这些基础的配置卸载了app.config中,下面记录一下代码。
ps:最开始看到xml解析的文章也不知道在哪里了,标注转载需要转载原文链接,此处就标记了原著
首先,看一下app.config的结构,我这里算是最简单的。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<appSettings>
<add key="User" value="admin"/>
<add key="Pwd" value="admin"/>
<add key="url" value="tcp://localhost:61616"/>
</appSettings>
</configuration>
下面直接放解析代码,世界上也是对xml文件的读取:
using System.Configuration;
namespace ToolHelper
{
public class AppConfigHelper
{
/// <summary>
/// 写入值,增加的内容写在appSettings段下
/// </summary>
/// <param name="key">key值</param>
/// <param name="value">value值</param>
public static void SetValue(string key, string value)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
if (config.AppSettings.Settings[key] == null)
{
config.AppSettings.Settings.Add(key, value);
}
else
{
config.AppSettings.Settings[key].Value = value;
}
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");//重新加载新的配置文件
}
/// <summary>
/// 读取指定key的值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetValue(string key)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
if (config.AppSettings.Settings[key] == null)
return "";
else
return config.AppSettings.Settings[key].Value;
}
}
}
这样就能实现对appsetting节点下的数据读取了。对于其他也是一样的,可以参考System.Configuration类下面的其他属性和方法。
[System.Configuration微软文档]: https://docs.microsoft.com/zh-cn/dotnet/api/system.configuration.configuration?view=dotnet-plat-ext-3.1