很多时候,我们可能会在asp.net中动态的修改配置文件,我们可以使用如下代码中涉及到的类来完成配置文件,下面的代码是修改connectionstring的例子:
System.Configuration.Configuration c = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
c.ConnectionStrings.ConnectionStrings.Clear();
ConnectionStringSettings s = new ConnectionStringSettings();
s.ProviderName = "System.Data.OleDb";
s.ConnectionString = "Provider=Microsoft.oledb.jet.4.0;data source=c://abc.mdb";
s.Name = "myaccess";
c.ConnectionStrings.ConnectionStrings.Add(s);
c.Save();
实例:
web.config
--------------------
<configuration>
<appSettings>
<add key="MyInt" value="1234" />
<add key="LogFolder" value="D:/WorkSpace/JavaScript/Slicing/SlicingWeb/log" />
</appSettings>
</configuration>
----------------------
protected void Page_Load(object sender, EventArgs e)
{
//FormSave();
WebSaveConfig();
}
/// <summary>
/// 当不在独立 exe 内部运行时,必须指定 exePath
/// OpenExeConfiguration(ConfigurationUserLevel.None)这个用于winform程序
/// </summary>
public void FormSave()
{
Configuration appCfg = ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);//?
AppSettingsSection appSettings = appCfg.AppSettings;
int myInt;
if (int.TryParse(appSettings.Settings["MyInt"].Value, out myInt))
{
Response.Write(myInt);
myInt *= 10;
appSettings.Settings["MyInt"].Value = myInt.ToString();
//appCfg.Save();
Response.Write("</br>" + myInt);
}
}
/// <summary>
/// asp.net web中
/// </summary>
public void WebSaveConfig()
{
//string path = Server.MapPath("~/Web.config");
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
config.ConnectionStrings.ConnectionStrings.Clear();
AppSettingsSection appSettings = config.AppSettings;
int myInt;
if (int.TryParse(appSettings.Settings["MyInt"].Value, out myInt))
{
Response.Write(myInt);
myInt *= 10;
appSettings.Settings["MyInt"].Value = myInt.ToString();
config.Save();
Response.Write("</br>" + myInt);
}
}
------------------
执行之后配置文件变化
web.config
--------------------
<configuration>
<appSettings>
<add key="MyInt" value="1234" />
<add key="LogFolder" value="D:/WorkSpace/JavaScript/Slicing/SlicingWeb/log" />
</appSettings>
</configuration>
----------------------