2013-07-26 2 views
7

Я пытаюсь понять ConfigurationManager в .NET, практикуя его в разных сценариях.О понимании ConfigurationManager в .NET

У меня есть два проекта: Project1 и Project2. Project2 использует Project1.

My Situation: У меня есть раздел (serializedfilename) в файле app.config в project1. и у меня есть эта строка кода в class1 из project1

private static string SerializedConfiguration = ConfigurationManager.AppSettings["SerializedFilename"]; 

В проекта2, я вызываю метод в class1 из project1 и я получаю исключение.

его как. NET, похоже, не может найти настройки в файле app.config проекта1 при вызове из project2, хотя i'v ссылался на project1 соответствующим образом.

Однако, когда я переместить раздел (serializedfilename) в App.config файл проекта2 ... все, кажется, работает хорошо ...

Может кто-нибудь объяснить мне, что здесь происходит? У меня возникает соблазн предположить, что ConfigurationManager существует только в контексте клиентского приложения (в данном случае project2), а не в исходной заявке (в этом случае проект1)

Примечание: i new (1month + to .NET)

Спасибо.

ответ

3

Когда вы добавляете ссылку app.Config не копируется. App.config должен быть в вашем основном проекте, в вашем случае проект 2. Если вы добавите его в проект 2 и вызовите его в указанном объекте Project 1, вы не получите никакой ошибки, поскольку VS выберет его из вашего основного проекта.

+0

спасибо, я ценю – oliverdejohnson

1

Правильно, ConfigurationManager ищет исполняющую сборку для параметров app.config или web.config для поиска.

Итак, если ваша библиотека DLL библиотеки классов, которая обращается к настройкам конфигурации, работает под проектом веб-сайта, то параметры приложения необходимо будет добавить в web.config, а не в app.config библиотеки классов.

+0

Спасибо. но почему документация не говорила так ... http: //msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx – oliverdejohnson

Смежные вопросы