Как я могу совместно использовать Параметры конфигурации через несколько проектов в Visual Studio?

У меня есть решение для веб-приложения Visual Studio. У меня есть три проекта как у UserInterface, BusinessLogic и DataAccess.

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

Я получаю доступ к этим configSections через классы, которые наследовались.NET ConfigurationSection базовый класс.

Так короче говоря для каждого проекта у меня был отдельный configSection, и для того соответствующего configSection у меня был класс в том проекте, наследовавшемся ConfigurationSection для доступа к конфигурации разделяют настройки.

Это работает вся конфета. Но проблема возникает, если существует какая-либо установка, которую я должен использовать через несколько проектов. Таким образом, Если я должен использовать установку, определенную в проекте UserInterface configSection в, позвольте, говорят, проект BusinessLogic, я должен на самом деле сделать копию из той установки в configSection BusinessLogic. Это заканчивает тем, что скопировало ту же установку через несколько configSections.

Разве это не немного слишком избыточно?

9
задан jkdev 29 November 2018 в 21:46
поделиться

2 ответа

Используя ваш пример:

Просто создайте настройку в проекте Business Logic, а затем предоставьте Getter проекту пользовательского интерфейса.

Затем пользовательский интерфейс может запросить значение у BL. Параметры конфигурации находятся только в одном месте - на самом низком уровне, который может быть.

Однако, если вы заменяете проект более низкого уровня новым, вам нужно будет убедиться, что настройка также реплицируется. Это может быть проблемой только в том случае, если параметр находится на уровне доступа к данным, поскольку он, скорее всего, будет изменен (например, другой поставщик базы данных).

0
ответ дан 5 December 2019 в 02:27
поделиться

На самом деле никогда не делал этого, но теоретически это может сработать ...

Когда вы определяете свой собственный раздел конфигурации, установите его configSource во внешний файл (что угодно .config). Этот внешний файл должен быть добавлен в РЕШЕНИЕ, а не в проект. Он появится в разделе «Элементы решения». В каждом проекте добавьте существующий файл, перейдите к Any.config, щелкните раскрывающееся меню на кнопке «Добавить» и выберите «Добавить как ссылку».

Whatever.config будет отдельным файлом, который вы можете редактировать в разделе «Элементы решения», и он копируется в каждое приложение во время компиляции.

1
ответ дан 5 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: