VS2003中对于应用程序配置文件(app.config或者web.config)只提供了读取的功能。而在VS2005中,对于配置文件的功能有了很大的加强。
在VS2005中,对于应用程序配置文件的读写一般使用Configuration,ConfigurationManager两个类。
ConfigurationManager类为客户应用程序提供了一个访问的功能。
使用ConfigurationManager对象执行打开配置文件的操作后,将会返回一个Configuration的对象。
通过程序实现读写配置文件的代码如下所示:
1 创建配置文件中的配置节所对应的类。该类必须继承自ConfigurationSection
public
sealed
class
ConfigurationSections : ConfigurationSection
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
[ConfigurationProperty("filename", DefaultValue = "default.txt")]
public string FileName
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
get
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
return (string)this["filename"];
}
set
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
this["filename"] = value;
}
}
}
public
sealed
class
BusinessSpaceConfiguration : ConfigurationSection
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
[ConfigurationProperty("filename")]
public string FileName
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
get
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
return (string)this["filename"];
}
set
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
this["filename"] = value;
}
}
}
2 创建配置文件代码
private
static
void
WriteAppConfiguration()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
try
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
ConfigurationSections configData = new ConfigurationSections();
configData.FileName = "abc.txt";
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.Sections.Remove("ConfigurationSections");
config.Sections.Add("ConfigurationSections", configData);
config.Save();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
BusinessSpaceConfiguration bsconfigData = new BusinessSpaceConfiguration();
bsconfigData.FileName = "def.txt";
System.Configuration.Configuration config1 = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config1.Sections.Remove("BusinessSpaceConfiguration");
config1.Sections.Add("BusinessSpaceConfiguration", bsconfigData);
config1.Save();
}
catch (Exception err)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
Console.Write(err.Message);
}
}
3 生成的配置文件格式如下所示:
<?
xml version="1.0" encoding="utf-8"
?>
<
configuration
>
<
configSections
>
<
section
name
="BusinessSpaceConfiguration"
type
="ConsoleApplication1.BusinessSpaceConfiguration, ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
/>
<
section
name
="ConfigurationSections"
type
="ConsoleApplication1.ConfigurationSections, ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
/>
</
configSections
>
<
BusinessSpaceConfiguration
filename
="def.txt"
/>
<
ConfigurationSections
filename
="abc.txt"
/>
</
configuration
>
3 读取应用程序配置文件
private
static
void
ReadAppConfiguration()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
ConfigurationSections obj1 = ConfigurationManager.GetSection("ConfigurationSections") as ConfigurationSections;
BusinessSpaceConfiguration obj2 = ConfigurationManager.GetSection("BusinessSpaceConfiguration") as BusinessSpaceConfiguration;
Console.WriteLine(obj1.FileName);
Console.WriteLine(obj2.FileName);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
本文转自
http://hi.baidu.com/geminiboy2008/blog/item/e59dee2a1f441899023bf647.html