Размещение информации о конфигурации в DLL

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

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

4 ответов


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


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

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

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


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

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

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

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