ASP.NET教程:.net2.0中对config文件的操作方法总结
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 11:32:56 ASP.NET
在编程中,我们经常用到config文件来保存一些常用的应用程序配置信息,在WinForm中这个文件名字是app.config,在asp中叫web.config。这个.config文件其实就是一个xml文件,对它的读操作微软已经提供了一个类来实现了,这个类就是System.Configuration.ConfigurationManager,下面分别是例子:
//读取config里名称为“conn数据库连接信息
connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[conn].ConnectionString;
//读取config里名称为Font_Size的应用程序配置信息
System.Configuration.ConfigurationManager.AppSettings[Font-Size] = 9;
不过利用这个类却不能对config文件进行写操作。对于config文件的写操作,很多人通过xml的方式来进行,按照xml的方式进行写操作在WinForm下虽然繁琐点,但是毕竟能完成。以下是按照xml文件进行写的例子。
#region 保存配置
XmlDocument document = LoadXml();
XmlNode root = document.DocumentElement;
XmlNodeList nodeList = root.FirstChild.ChildNodes;
for (int i = 0; i nodeList.Count; i++)
{
string key = nodeList[i].Attributes[key].Value;
if (key == FilterOption)
{
nodeList[i].Attributes[value].Value = ((int)container.FilterOption).ToString();
}
}
document.Save(configPath);
#endregion
本文提供了另外一种方式,利用2.0类库里面的Configuration来进行写操作。详细介绍请看下面的详细介绍。
Configuration 是允许进行编程以配置文件的类。对于WebForm的config文件,可以用如下代码得到Configuration类的实例:
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(configPath);
对于WinForm的config文件,可以用如下代码得到Configuration类的实例:
Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(configPath);
需要注意的是,对文件进行写操作之后,需要调用Save()方法保存结果。整个程序的源代码如下,并附有详细代码注释。
using System;
using System.Configuration;
using System.Web;
using System.Windows.Forms;
namespace NetSkycn.Common
{
/// summary
/// 说明:Config文件类型枚举,
/// 分别为asp网站的config文件和WinForm的config文件
/// 周公
/// 日期:2008-08-23
/// 首发地址:http://blog.csdn/zhoufoxcn/archive/2008/08/24/2823508.aspx
/// /summary
public enum ConfigType
{
/// summary
/// asp网站的config文件
/// /summary
WebConfig = 1,
/// summary
/// Windows应用程序的config文件
/// /summary
ExeConfig = 2
}
/// summary
/// 说明:本类主要负责对程序配置文件(.config)进行修改的类,
/// 可以对网站和应用程序的配置文件进行修改
/// 周公
/// 日期:2008-08-23
/// 首发地址:http://blog.csdn/zhoufoxcn/archive/2008/08/24/2823508.aspx
/// /summary
public class ConfigurationOperator
{
private Configuration config;
private string configPath;
private ConfigType configType;
/// summary
/// 对应的配置文件
/// /summary
public Configuration Configuration
{
get { return config; }
set { config = value; }
}
/// summary
/// 构造函数
/// /summary
/// param name=configType.config文件的类型,只能是网站配置文件或者应用程序配置文件/param
public ConfigurationOperator(ConfigType configType)
{
this.configType = configType;
if (configType == ConfigType.ExeConfig)
{
configPath = Application.ExecutablePath; //AppDomain.CurrentDomain.BaseDirectory;
}
else
{
configPath = HttpContext.Current.Request.ApplicationPath;
}
Initialize();
}
/// summary
/// 构造函数
/// /summary
/// param name=path.config文件的位置/param
/// param name=type.config文件的类型,只能是网站配置文件或者应用程序配置文件/param
public ConfigurationOperator(string configPath, ConfigType configType)
{
this.configPath = configPath;
this.configType = configType;
Initialize();
}
//实例化configuration,根据配置文件类型的不同,分别采取了不同的实例化方法
private void Initialize()
{
//如果是WinForm应用程序的配置文件
if (configType == ConfigType.ExeConfig)
{
config = System.Configuration.ConfigurationManager.OpenExeConfiguration(configPath);
}
else//WebForm的配置文件
{
config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(configPath);
}
}
/// summary
/// 添加应用程序配置节点,如果已经存在此节点,则会修改该节点的值
/// /summary
/// param name=key节点名称/param
/// param name=value节点值/param
public void AddAppSetting(string key, string value)
ASP.NET