Ввод информации о конфигурации в 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 вернется к значениям по умолчанию.
Большинство людей подумают, что это плохо, и я склонен согласиться, но ты здесь.