C# winform 想动态修改config文件,config里面没有变呢

在网上找了好多都大同小异,appsettings和ConnectionStrings两种,两种都试了还是没反应,也没报错,可以查询到但是删除和添加修改都不起作用,不知道是怎么回事,跪求大神解答
这是ConnectionStrings的
///<summary>
///更新连接字符串
///</summary>
///<param name="newName">连接字符串名称</param>
///<param name="newConString">连接字符串内容</param>
///<param name="newProviderName">数据提供程序名称</param>
public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)
{
//指定config文件读取
string file = System.Windows.Forms.Application.ExecutablePath;
Configuration config = ConfigurationManager.OpenExeConfiguration(file);

bool exist = false; //记录该连接串是否已经存在
//如果要更改的连接串已经存在
if (config.ConnectionStrings.ConnectionStrings[newName] != null)
{
exist = true;
}
// 如果连接串已存在,首先删除它
if (exist)
{
config.ConnectionStrings.ConnectionStrings.Remove(newName);
}
//新建一个连接字符串实例
ConnectionStringSettings mySettings =
new ConnectionStringSettings(newName, newConString, newProviderName);
// 将新的连接串添加到配置文件中.
config.ConnectionStrings.ConnectionStrings.Add(mySettings);
// 保存对配置文件所作的更改
config.Save(ConfigurationSaveMode.Modified);
// 强制重新载入配置文件的ConnectionStrings配置节
ConfigurationManager.RefreshSection("ConnectionStrings");
}

这是appsettings的
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationElement keyValue = new KeyValueConfigurationElement(connectName, connectString);
AppSettingsSection appsetings = config.AppSettings;
appsetings.Settings.Add(keyValue);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(connectName);

额。。。你是要改原始配置文件?
你上面的代码改的是xx.vshost.exe.config(而不是xx.exe.config),Configuration没有提供直接改原始配置文件的方法,如果你非要改,只能用File去处理这个文件(而且只能下次才生效了,因为这次启动后,程序读取的就只有xx.vshost.exe.config追问

那是不是就要用XML处理节点?

追答

额。。。既然是随意写了,你用xml处理也行,直接读取所有文本然后在里面改了再存回去也行
这都随你写了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答