很多時候,我們可能會在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>
----------------------