讨论个Configuration和ConfigurationManager的问题

Corny 2006-09-17 05:26:00
在.Net 2.0的ConfigurationManager里及其他相关的类中,分别提供了OpenExeConfiguration和OpenWebConfiguration方法,并于返回的Configuration对象提供了save方法,但多次实验证明这个Save没有实现,不知道是我的.Net环境问题,还是事实如此,期望大家讨论讨论.

这两个方法返回的Configuration对象都能正常的执行Save方法,并没有任何的Exception抛出,即便是对connectionStrings这个只读属性,只要以connectionStrings[index].connectionString的方式设置其值,就不会报错,因为connectionString属性是可写的,但这个执行的结果是,ConnectionStringSetting对象的connectionString值被改变,但并不能保存在实时的配置文件中,也就是说,Save方法不起作用.运行时的值还是被改变了,那可以通过即时读取这个属性获得运行时的值,即使自定义配置节也是如此,即程序运行时加载过配置文件后,可以通过代码改变其值,但这个值并不能Save到磁盘上

按照MSDN文档中的提法,Save方法应该是用来实现更改配置值的(而不应该仅仅是运行值),配合前述两个方法一起使用,应该是可以保存动态的配置值,但我遇到的情况是值一直不能保存,要保存这些运行时更改的配置值,只能通过读写配置文件的方法来实现.另外,通过Configuration继承实现自定义Section的时候,也并没有说明Save方法一定要实现,况且这个方法声明中并没有指明overridable.

如果是这样,Configuration里提供Save方法又有何意义?

不知道哪位高人是不是有更好的方法.


...全文
179 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧