关于C#config文件处理
问题描述:
有个程序的config文件是这么写的
这个程序如果要添加配置 直接在config文件里加一行
add key="增加" value="192.168.11.111"/
程序里就可以新增一条,请问这种config文件的读取方式,在代码里是怎么实现的
答
这个读写web.config代码,测试过可以用
https://www.cnblogs.com/zhangqs008/p/3773630.html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="download.test" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Web.Configuration" %>
<script runat="server">
/// <summary>
/// WebConfig读写辅助类
/// </summary>
public class WebConfigManager : IDisposable
{
private Configuration _config;
/// <summary>
/// WebConfig读写辅助类
/// </summary>
public WebConfigManager()
: this(HttpContext.Current.Request.ApplicationPath)
{
}
/// <summary>
/// WebConfig读写辅助类
/// </summary>
/// <param name="path"></param>
public WebConfigManager(string path)
{
_config = WebConfigurationManager.OpenWebConfiguration(path);
}
#region IDisposable Members
public void Dispose()
{
if (_config != null)
{
_config.Save();
}
}
#endregion
/// <summary>
/// 设置应用程序配置节点,如果已经存在此节点,则会修改该节点的值,否则添加此节点
/// </summary>
/// <param name="key">节点名称</param>
/// <param name="value">节点值</param>
public void SetAppSetting(string key, string value)
{
var appSetting = (AppSettingsSection)_config.GetSection("appSettings");
if (appSetting.Settings[key] == null) //如果不存在此节点,则添加
{
appSetting.Settings.Add(key, value);
}
else //如果存在此节点,则修改
{
appSetting.Settings[key].Value = value;
}
Save();
}
/// <summary>
/// 设置数据库连接字符串节点,如果不存在此节点,则会添加此节点及对应的值,存在则修改
/// </summary>
/// <param name="key">节点名称</param>
/// <param name="connectionString"> </param>
public void SetConnectionString(string key, string connectionString)
{
var connectionSetting = (ConnectionStringsSection)_config.GetSection("connectionStrings");
if (connectionSetting.ConnectionStrings[key] == null) //如果不存在此节点,则添加
{
var connectionStringSettings = new ConnectionStringSettings(key, connectionString);
connectionSetting.ConnectionStrings.Add(connectionStringSettings);
}
else //如果存在此节点,则修改
{
connectionSetting.ConnectionStrings[key].ConnectionString = connectionString;
}
Save();
}
/// <summary>
/// 保存所作的修改
/// </summary>
public void Save()
{
_config.Save();
_config = null;
}
}
protected void Page_Load(object sender, EventArgs e)
{
var config = new WebConfigManager();
config.SetAppSetting("StrRegex", "");
}
</script>
答
ConfigurationManager.AppSettings["前台"]
答
这种方法我会,如果程序里要添加一条,这个程序可以直接在配置文件里 加 add key="新加的" value="192.168.11.111"/ 程序里就会多出来一条 这种方式我不会
答
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["WcfWinForm.Common.Entities"].Value = strConn;
config.Save(ConfigurationSaveMode.Modified);