修改和获取web.config或app.config文件appSettings配置节中的Add里的value属性 函数

   1:  /// <summary>
   2:  /// 修改web.config或app.config文件appSettings配置节中的Add里的value属性
   3:  /// </summary>
   4:  /// <remarks>
   5:  /// 注意,调用该函数后,会使整个Web Application重启,导致当前所有的会话丢失
   6:  /// </remarks>
   7:  /// <param name="key">要修改的键key</param>
   8:  /// <param name="strValue">修改后的value</param>
   9:  /// <exception cref="">找不到相关的键</exception>
  10:  /// <exception cref="">权限不够,无法保存到web.config文件中</exception>
  11:  public static void ModifyAppSettings(string key, string strValue)
  12:  {
  13:      string XPath = "/configuration/appSettings/add[@key='?']";
  14:      XmlDocument domConfig = new XmlDocument();
  15:   
  16:      domConfig.Load(Environment.CurrentDirectory + "/Application1.exe.config");
  17:      XmlNode addKey = domConfig.SelectSingleNode((XPath.Replace("?", key)));
  18:      if (addKey == null)
  19:      {
  20:          throw new ArgumentException("没有找到<add key='" + key + "' value=.../>的配置节");
  21:      }
  22:      addKey.Attributes["value"].InnerText = strValue;
  23:      domConfig.Save(Environment.CurrentDirectory + "/Application1.exe.config");
  24:   
  25:  }
  26:   
  27:  /// <summary>
  28:  /// 获取web.config或app.config文件appSettings配置节中的Add里的value属性
  29:  /// </summary>
  30:  /// <param name="key">要修改的键key</param>
  31:  /// <param name="strValue">修改后的value</param>
  32:  /// <exception cref="">找不到相关的键</exception>
  33:  /// <exception cref="">权限不够,无法保存到web.config文件中</exception>
  34:  public static string GetAppSettings(string key)
  35:  {
  36:      string XPath = "/configuration/appSettings/add[@key='?']";
  37:      XmlDocument domConfig = new XmlDocument();
  38:   
  39:      domConfig.Load(Environment.CurrentDirectory + "/Application1.exe.config");
  40:      XmlNode addKey = domConfig.SelectSingleNode((XPath.Replace("?", key)));
  41:      if (addKey == null)
  42:      {
  43:          throw new ArgumentException("没有找到<add key='" + key + "' value=.../>的配置节");
  44:      }
  45:      return addKey.Attributes["value"].InnerText;
  46:  }

上一篇:ACM/ICPC 之 ACM计算机工厂-EK算法(POJ3436)


下一篇:【ASP.NET】DataContract序列化,反序列化对象中包含用接口声明的属性时的处理方法