Ввод информации о конфигурации в DLL

В моем проекте у меня есть функциональность, которая используется в качестве веб-приложения и как консольное приложение (для запуска из планировщика задач). Для этого я помещаю общий код в DLL, который используется как веб-приложением, так и консольным приложением. Это прекрасно работает.

Однако консольные и веб-приложения теперь имеют App.config и Web.config, которые в основном одинаковы. Возможно ли разместить эту конфигурацию в DLL и сделать ее доступной для обоих приложений?

Ответ 1

Да, вы можете и должны поместить общие параметры конфигурации в файл конфигурации для своей DLL. Просто добавьте файл app.config в проект DLL и убедитесь, что вы прочитали параметры конфигурации изнутри DLL. При развертывании ваш файл конфигурации должен иметь имя "MyDLL.dll.config" (если ваша DLL называется "MyDLL.dll" ) и находиться в той же папке, что и DLL.

Ответ 2

Я бы предположил, что вы перемещаете загрузку конфигурации в dll, а не всю конфигурацию, а затем вызываете ее из разных приложений. Это значит, что:

  • Вам не нужно перекомпилировать для изменения данных конфигурации (всегда полезно)
  • Если вам нужно снова разбить конфигурацию в будущем, это будет возможно с помощью dll.

Ответ 3

вы можете поместить общую конфигурацию в реестр Windows, доступную везде, где вам нравится

Ответ 4

Предполагая, что вы используете .Net, вы можете настроить файл .settings для хранения ваших данных конфигурации. Данные, хранящиеся там, будут сохранены в качестве значений по умолчанию для этих записей конфигурации, поэтому даже если нет файла app.config, ваш приложение будет работать с такими значениями по умолчанию.

Я не говорю, что это хорошо... 8)

Итак, если вы создадите проект, который ссылается на вашу DLL, вы добавите тот же файл .settings в этот проект, и эти параметры появятся в файле app.config для приложения, и DLL сможет прочитать эти значения, Если эти значения отсутствуют в app.config, dll вернется к значениям по умолчанию.

Большинство людей подумают, что это плохо, и я склонен согласиться, но ты здесь.