.net1.1中如果需要灵活的操作和读写配置文件并不是十分方便,一般都会在项目中封装一个配置文件管理类来进行读写操作。而在.net2.0中使用configurationmanager 和webconfigurationmanager 类可以很好的管理配置文件,configurationmanager类在system.configuration中,webconfigurationmanager在system.web.configuration中。根据msdn的解释,对于 web 应用程序配置,建议使用 system.web.configuration.webconfigurationmanager 类,而不要使用 system.configuration.configurationmanager 类。
下面我给出一个简单的例子说明如何使用webconfigurationmanager操作配置文件:
/打开配置文件
configuration config = webconfigurationmanager.openwebconfiguration("~");
/获取appsettings节点
appsettingssection appsection = (appsettingssection)config.getsection("appsettings");
/在appsettings节点中添加元素
appsection.settings.add("addkey1", "key1's value");
appsection.settings.add("addkey2", "key2's value");
config.save();
运行代码之后可以看见配置文件中的改变:
<appsettings>
<add key="addkey1" value="key1's value" />
<add key="addkey2" value="key2's value" />
</appsettings>
修改和删除节点或属性也非常方便:
/打开配置文件
configuration config = webconfigurationmanager.openwebconfiguration("~");
/获取appsettings节点
appsettingssection appsection = (appsettingssection)config.getsection("appsettings");
/删除appsettings节点中的元素
appsection.settings.remove("addkey1");
/修改appsettings节点中的元素
appsection.settings["addkey2"].value = "modify key2's value";
config.save();
配置文件:
<appsettings>
<add key="addkey2" value="modify key2's value" />
</appsettings>
这是一种,在读的时候可以用个简单的方法
configurationmanager.getsection(" 路径")
另外在httprutime(好像是这么写)里设置上载文件大小。
补充:但是微软提供的这些API不能在程序中实时更新,好像是暂时放在了内促当中,尽管有个reflesh的方法,但是依然没有成功,所以我都是用的DOM模型来解析的