How to Read and Write Configuraiton Data in App.config and Web.config Without Using Enterprise Library?
Since .NET Framework 2.0, the new added class ConfigurationManager in System.Configuration namespace can be used to read and write configuraiton information in App.config and Web.config without using the complicated Enterprise Library Configuration Block in your application.
The ConfigurationManager class allows you to access machine(machine.config), application(app.config, web.config), and user configuration information. This class replaces the ConfigurationSettings class, which is deprecated.
If your application needs read-only access to its own configuration, it is recommended that you use of the GetSection method. This method provides access to the cached configuration values for the current application, which has better performance than the Configuration class. To write to the configuration files, use one of the Save methods.
The following code demonstrates how to use ConfigurationManager to read and writing configuration data from App.config in C#.
//App.config
<configuration>
<configSections>
<section name="EditorSettings" type="TestApp.EditorFontData, TestApp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null" />
</configSections>
<EditorSettings name="Verdana" size="24" style="2" />
</configuration>
//EditorFontData.cs
public class EditorFontData : ConfigurationSection
{
public EditorFontData()
{
}
[ConfigurationProperty("name")]
public string Name
{
get { return (string)this["name"]; }
set{ this["name"] = value; }
}
[ConfigurationProperty("size")]
public float Size
{
get{ return (float)this["size"]; }
set{ this["size"] = value; }
}
[ConfigurationProperty("style")]
public int Style
{
get { return (int)this["style"]; }
set{ this["style"] = value; }
}
// ....
}
Reading configuratiopn data from App.config
using System.Configuration;
...
private void readConfigDataButton_Click(object sender, System.EventArgs e)
{
EditorFontData configData = ConfigurationManager.GetSection("EditorSettings") as EditorFontData;
....
}
Writing configuratiopn data to App.config
using System.Configuration;
...
private void writeConfigDataButton_Click(object sender, System.EventArgs e)
{
EditorFontData configData = new EditorFontData();
if (fontDialog.ShowDialog() == DialogResult.OK)
{
configData.Name = fontDialog.Font.Name;
configData.Size = fontDialog.Font.Size;
configData.Style = Convert.ToInt32(fontDialog.Font.Style);
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.Sections.Remove("EditorSettings");
config.Sections.Add("EditorSettings", configData);
config.Save();
....
}
}