日期:2013-09-11  浏览次数:20547 次

大家都知道Asp.Net提供了一个WebApplication的配置文件web.config,让我们可以很方便地设置Web应用程序,另外还可以在appSettings节中增加一些我们常要使用的单元,如数据库连接串等,利用System.Configuration.ConfigurationSetting类我们可以很容易读取这些单元的值,但是要改变这些值就需要一些技巧了,下面我就来告诉大家如何在运行时利用System.Management中的类去改变这些单元的值。

现假设您有一个WebApplication名叫MyWebApp,虚拟路径为:http://localhost/MyWebApp,目录路径为:c:\inetpub\wwwroot\MyWebApp,其中配置文件web.config中的appSettings设置如下:

<configuration>
<appSettings>
     <add key="test" value="runtime modify test"/>
</appSettings>

</configuration>

创建一个新的Console应用程序加入以下代码:

using System;
using System.Management;

namespace ConsoleApplication1
{
class Class1
{
  [STAThread]
  static void Main(string[] args)
  {
   ManagementObject appSet= new ManagementObject("root\\NetFrameworkV1:appSettings.Directive=\"add\",key=\"test\",Selector=\"file://C:/Inetpub/wwwroot/MyWebApp/web.config\"");
   Console.WriteLine(string.Format("Old value:{0}",appSet["value"]));
   appSet.SetPropertyValue("value","new value was set ok!");
   appSet.Put();
   Console.WriteLine("New value setted ok!");
   Console.Read();
  }
}
}

编译并运行,然后查看MyWebApp/web.config是否已被成功修改!!!:)