有没有办法导入自定义配置部分?

时间:2012-02-13 01:20:57

标签: c# import configurationsection custom-configuration

我想知道是否有办法让子项目中的多个自定义配置部分相互追加?

例如,考虑项目结构:

Solution\
   MainGUI\
      App.config
      Settings\
         MainGUISettings.cs
   PrintingLibrary\
      App.config
      Settings\
         PrintingSettings.cs
   SocketLibrary\
      App.config
      Settings\
         SocketSettings.cs
   DatabaseAccessLibrary\
      App.config
      Settings\
         DatabaseAccessSettings.cs
   PrintingUnitTest\
      App.config
      Settings\
         PrintingUnitSettings.cs

每个项目都有一个App.config,其中包含各自任务的特殊设置。例如,PrintingLibrary包含一个App.config,其中包含PrintingSettings自定义配置部分。 SocketLibrary包含一个包含SocketSettings自定义配置部分的App.config。 DatabaseAccessLibrary包含一个App.config,其中包含DatabaseAccessSettings自定义配置部分。

MainGUI包含一个App.config,其中包含主GUI设置以及每个库的自定义配置部分的“导入标签”。在查看MainGUI项目的App.config源时,PrinterSettings,SocketSettings和DatabaseAccessSettings部分只是“导入代码”,但是当您构建MainGUI时,生成的MainGUI.exe.config文件包含所有三个子部分。

如果我构建了PrintingUnitTest,它还会导入PrinterSettings自定义部分。那么有没有内置的方法来做到这一点?

现在,我这样做只是将所有自定义配置部分放在MainGUI项目的App.config中,只需复制UnitTest项目的App.config中所需的部分。

1 个答案:

答案 0 :(得分:1)

没有办法实现这一点,你不应该将app.config放在任何库项目中(除非在诸如WCF的罕见情况下)。所有配置都应该转到可执行项目的app.config,因为这是System.Configuration.ConfigurationManager关心的地方。