Есть ли способ импортировать пользовательский раздел конфигурации? - PullRequest
0 голосов
/ 13 февраля 2012

Хотелось бы узнать, есть ли способ сделать несколько пользовательских разделов конфигурации в подпроектах для добавления друг к другу?

Например, рассмотрим структуру проекта:

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 содержит файл App.config, содержащий раздел пользовательской конфигурации SocketSettings.DatabaseAccessLibrary содержит файл App.config, который содержит раздел пользовательской конфигурации DatabaseAccessSettings.

MainGUI содержит файл App.config, который содержит основные настройки графического интерфейса плюс «теги импорта» разделов пользовательской конфигурации каждой библиотеки.При просмотре источника App.config проекта MainGUI разделы PrinterSettings, SocketSettings и DatabaseAccessSettings являются просто «кодом импорта», но при создании MainGUI сгенерированный файл MainGUI.exe.config содержит все три подраздела.

Если я создаю PrintingUnitTest, он также импортирует пользовательский раздел PrinterSettings.Так есть ли встроенный способ сделать это?

Прямо сейчас способ, которым я делаю это, - просто поместите все пользовательские разделы конфигурации в App.config проекта MainGUI и просто скопируйте необходимые разделы в приложение проекта UnitTest..config.

1 Ответ

1 голос
/ 13 февраля 2012

Нет способа достичь этого, и вы не должны помещать app.config в какой-либо проект библиотеки (за исключением редких условий, таких как WCF).Вся конфигурация должна идти в app.config исполняемого проекта, поскольку это место, о котором заботится System.Configuration.ConfigurationManager.

...