如果涉及运行时写配置文件则最好将配置文件分开存储,因为.NET2.0的配置管理机制将监听所有配置文件的更改,如果出现多ConfigurtionSource情况时可能会导致更新失败。
    App.Config是必须的,它是EntLib配置管理的入口,其中enterpriseLibrary.ConfigurationSource(ConfigurationSection)指明My.Config的确切位置。
    要在运行时成功保存的自定义ConfigurationSection(派生于SerializableConfigurationSection)需要注意:
      1.  FileConfigurationSource的Save方法用于EntLib内部调用不宜直接调用,保存应直接将一个Section用Add方法加入到Section集合中。(在Add方法中会调用Save方法,而在Save方法中会调用.Net20提供的Configuration先Remove具有同名的节,然后再添加给定节。)
      
           2.  不能直接将运行时的Section保存,需要为其实现一个Clone方法,创建一个Section的副本,然后用这个副本作为参数调用Add方法。通过Reflector查看Configurtion的Sections管理机制可以发现,如果直接使用Section其SectionInfomation.Atteched=true(内部),这将导致InvalidOperationException异常。实现Clone方法避免这一标志被置位。见如下代码:

FileConfigurationSource的运行时读写配置文件
 1FileConfigurationSource的运行时读写配置文件    public class MySettings : SerializableConfigurationSection
 2
FileConfigurationSource的运行时读写配置文件

相关文章:

  • 2021-06-09
  • 2021-11-27
  • 2021-11-11
猜你喜欢
  • 2021-12-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案