c# 更新web.config
标签:void 更新 source ref 添加 return man refresh error
1 ///
2 /// 添加和更新配置文件web.config的appSettings,缺点是会删除注释
3 ///
4 ///
5 ///
6 public static void AddUpdateAppSettings(string key, string value)
7 {
8 try
9 {
10 var configFile = WebConfigurationManager.OpenWebConfiguration("~");
11 var settings = configFile.AppSettings.Settings;
12 try
13 {
14 if (settings[key] == null)
15 {
16 settings.Add(key, value);
17 }
18 else
19 {
20 settings[key].Value = value;
21 }
22 configFile.Save(ConfigurationSaveMode.Modified);
23 ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
24 }
25 catch (Exception ex)
26 {
27 if (settings.Count != 0)
28 {
29 NLog.Error("配置文件写入失败,需要写入文件的配置信息:===============================");
30 foreach (string tkey in settings.AllKeys)
31 {
32 string tvalue = settings[tkey].Value;
33 NLog.Error(string.Format("Key: {0} Value: {1}", tkey, tvalue));
34 }
35 }
36 throw;
37 }
38 }
39 catch (Exception ex)
40 {
41 NLog.Error("具体失败内容:" + ex);
42 }
43 }
44
45 ///
46 /// 添加和更新web.config的appSettings,且不删除注释
47 ///
48 ///
49 ///
50 public static void UpdateAppSetting(string key, string value)
51 {
52 try
53 {
54 Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
55 SaveUsingXDocument(key, value, config.AppSettings.ElementInformation.Source);
56 }
57 catch (Exception ex)
58 {
59 NLog.Error("更新配置失败" + ex);
60 }
61 }
62 private static void SaveUsingXDocument(string key, string value, string fileName)
63 {
64 XDocument document = XDocument.Load(fileName);
65 if (document.Root == null)
66 {
67 return;
68 }
69 var appSettings = document.Root.Element("appSettings");
70 if (appSettings == null) return;
71 XElement appSetting = appSettings.Elements("add").FirstOrDefault(x => x.Attribute("key").Value == key);
72 if (appSetting != null)
73 {
74 appSetting.Attribute("value").Value = value;
75 }
76 else
77 {
78 XElement ele = new XElement("add", new XAttribute("key", key), new XAttribute("value", value));
79 appSettings.Add(ele);
80 }
81 document.Save(fileName);
82 }
c# 更新web.config
标签:void 更新 source ref 添加 return man refresh error
原文地址:https://www.cnblogs.com/mantishell/p/11663504.html
评论