/// <summary>/// 依据连接串名字connectionName返回数据连接字符串/// </summary>/// <param name="connectionName"></param>/// <returns></returns>private static string GetConnectionStringsConfig(string connectionName){string connectionString =ConfigurationManager .ConnectionStrings[connectionName].ConnectionString.ToString();Console .WriteLine(connectionString);return connectionString;}
/// <summary>/// 更新连接字符串/// </summary>/// <param name="newName"> 连接字符串名称 </param>/// <param name="newConString"> 连接字符串内容 </param>/// <param name="newProviderName"> 数据提供程序名称 </param>private static void UpdateConnectionStringsConfig(string newName,string newConString,string newProviderName){bool isModified = false ; // 记录该连接串是否已经存在// 如果要更改的连接串已经存在if (ConfigurationManager .ConnectionStrings[newName] != null ){isModified = true ;}// 新建一个连接字符串实例ConnectionStringSettings mySettings =new ConnectionStringSettings (newName, newConString, newProviderName);// 打开可执行的配置文件*.exe.configConfiguration config =ConfigurationManager .OpenExeConfiguration(ConfigurationUserLevel .None);// 如果连接串已存在,首先删除它if (isModified){config.ConnectionStrings.ConnectionStrings.Remove(newName);}// 将新的连接串添加到配置文件中.config.ConnectionStrings.ConnectionStrings.Add(mySettings);// 保存对配置文件所作的更改config.Save(ConfigurationSaveMode .Modified);// 强制重新载入配置文件的ConnectionStrings配置节ConfigurationManager .RefreshSection("ConnectionStrings" );}
/// <summary>/// 返回*.exe.config文件中appSettings配置节的value项/// </summary>/// <param name="strKey"></param>/// <returns></returns>private static string GetAppConfig(string strKey){foreach (string key in ConfigurationManager .AppSettings){if (key == strKey){return ConfigurationManager .AppSettings[strKey];}}return null ;}
/// <summary>/// 在*.exe.config文件中appSettings配置节增加一对键、值对/// </summary>/// <param name="newKey"></param>/// <param name="newValue"></param>private static void UpdateAppConfig(string newKey, string newValue){bool isModified = false ;foreach (string key in ConfigurationManager .AppSettings){if (key==newKey){isModified = true ;}}// Open App.Config of executableConfiguration config =ConfigurationManager .OpenExeConfiguration(ConfigurationUserLevel .None);// You need to remove the old settings object before you can replace itif (isModified){config.AppSettings.Settings.Remove(newKey);}// Add an Application Setting.config.AppSettings.Settings.Add(newKey,newValue);// Save the changes in App.config file.config.Save(ConfigurationSaveMode .Modified);// Force a reload of a changed section.ConfigurationManager .RefreshSection("appSettings" );}
/// <summary>
/// 写入Key,Value 到XML文件
/// </summary>
/// <param name="Key"></param>
/// <param name="Value"></param>
public static void SaveConfig( string Key, string Value)
{
XmlDocument doc = new XmlDocument();
// 获得配置文件的全路径
string strFileName = AppDomain.CurrentDomain.BaseDirectory.ToString() + " App.config " ;
doc.Load(strFileName);
// 找出名称为“add”的所有元素
XmlNodeList nodes = doc.GetElementsByTagName( " add " );
for ( int i = 0 ; i < nodes.Count; i ++ )
{
// 获得将当前元素的key属性
XmlAttribute att = nodes[i].Attributes[ " key " ];
// 根据元素的第一个属性来判断当前的元素是不是目标元素
if (att.Value == Key)
{
// 对目标元素中的第二个属性赋值
att = nodes[i].Attributes[ " value " ];
att.Value = Value;
break ;
}
}
// 保存上面的修改
doc.Save(strFileName);
}
本文介绍如何在.NET应用中添加、读取及修改App.config文件。详细解释了connectionStrings和appSettings配置节的用法,并提供了更新配置的具体代码示例。
1573

被折叠的 条评论
为什么被折叠?



