Совместное использование настроек приложения в нескольких проектах - PullRequest
2 голосов
/ 30 сентября 2008

У нас есть довольно большое решение .NET с несколькими исполняемыми проектами (winforms и программы командной строки). В настоящее время каждый из этих проектов имеет свой собственный app.config, который содержит строки подключения, настройки почтового сервера и тому подобное. Как вы можете себе представить, не всегда удобно вносить изменения в каждый файл app.config всякий раз, когда необходимо обновить конкретный параметр.

Что, по вашему мнению, является наилучшей практикой для централизованного управления этими настройками? До сих пор я думал о двух разных подходах. Первый использует пользовательский класс (или классы), который содержит настройки и сериализуется в и десериализуется из XML. Второй подход - определение файла app.config только для одного проекта и использование ConfigurationManager.OpenExeConfiguration () для доступа к нему.

Ответы [ 3 ]

1 голос
/ 30 сентября 2008

Используйте директиву ConfigSource , чтобы загрузить все настройки из центрального файла с общими значениями.

1 голос
/ 30 сентября 2008

Создайте App.config в вашем начальном проекте и статически связывайте его с другими проектами.

Вы можете связать статически, перейдя в Add-> Existing Item, и при нажатии кнопки Add в окне браузера файлов, есть небольшая стрелка вниз на кнопке Add. Нажмите там, и появится опция «Добавить как ссылку». Это поместит один и тот же App.Config в оба проекта, с одним действительным файлом.

Если ваши проекты имеют разные App.Config с только «некоторыми» настройками, которые совпадают, попробуйте проверить параметр файла; Я имею в виду, вы можете иметь более одного App.Config в проекте: http://weblogs.asp.net/pwilson/archive/2003/04/09/5261.aspx

Просто создайте центральный файл common.config и укажите на него.

0 голосов
/ 30 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...