Понимание файлов конфигурации в мультипроектных (совместимых) решениях .NET - PullRequest
2 голосов
/ 14 июня 2011

Сценарий

Подумайте о наличии решений с 4 проектами:

1) ProjectSql: это проект, выход компиляции которого установлен на Library, и он отвечает за доступ к базе данных SqlServer и выполнение чего-либо. Последняя библиотека сможет предоставлять API для управления постоянством конечного приложения.

2) ProjectWCF: это проект, выходные данные компиляции которого установлены на Library, и он отвечает за определение контрактов на обслуживание, контрактов на данные и реализации сервисов, чтобы мое приложение могло размещать сервис.

3) ProjectMiscellaneous: это проект, выходные данные компиляции которого установлены на Library, и он отвечает за предоставление API для других целей.

4) ProjectApp: это проект, выходные данные компиляции которого установлены на Executable (Exe), и он отвечает за создание бизнес-логики моего приложения. Предположим, это простое консольное приложение. В этом проекте есть ссылки на все остальные.

Предположение: учтите, что у каждого проекта есть свой файл конфигурации. Например, ProjectSql определяет строки подключения для подключения к базе данных и т. Д. ...

Проблема: Конфигурация

Что ж, моя проблема заключается в следующем: учтите, что мой проект приложения ProjectApp использует ProjectSql, так что каждый вызов операции в ProjectSql должен подключаться к базе данных, в этих вызовах ссылка на файл конфигурации ProjectSql используется для получения строк подключения ( простой вызов System.Configuration.ConfigurationManager....).

Я думаю, что если мой ProjectApp со своим собственным файлом конфигурации сделает вызов операции в ProjectSql, то эта операция будет ссылаться на свой собственный файл конфигурации.

Мой вопрос:

То, что я сказал, это правда ???

Соответствуют ли файлы конфигурации иерархии проекта.

1 Ответ

2 голосов
/ 14 июня 2011

System.Configuration.ConfigurationManager можно указать, какой файл конфигурации нужно прочитать. Любое данное приложение обычно имеет одну конфигурацию, например appname.exe.config или web.config.

Так что ответ на ваш вопрос - НЕТ.

Когда вы вызываете System.Configuration.ConfigurationManager для любой из библиотек классов, это файл ProjectApp.exe.config, который читается.

...