2010-08-17 3 views
2

Можно создать дубликат:
Reading dll.config (not app.config!) from a plugin module.Как сообщить C#, какой файл конфигурации использовать?

У меня есть два различных проекта, скажем, А и Б. Мне нужно использовать некоторые классы A в B. Таким образом, я добавил ссылку на ин B. Когда я попытался запустить приложение, я заявил, что для задания ссылки на объект установлено значение null. При исследовании я обнаружил, что, когда я обращаюсь к классам A из B, управление переходит к проекту A, но C# по-прежнему использует конфигурационный файл проекта B вместо файла конфигурации проекта A. Как мне обойти это? Как я могу «включить» конфигурационный файл A в DLL?

Я прошел через блог this, но я чувствую, что это очень грязный способ сделать это. Там должен быть более простой способ!

Позвольте мне знать, если вопрос не ясно ..

ответ

3

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

+0

hmm .. Я только что закончил копирование соответствующих ключей из другого конфигурационного файла .. здесь было всего 2 ключа, так что все было в порядке. Но мне интересно, как работают большие приложения, когда могут возникать конфликты между ключами. –

+0

@ Raze2dust: более новый стиль настроек конфигурации имеет отдельные разделы конфигурации, поэтому конфликт не должен быть большим. –

+0

Спасибо, можете ли вы указать мне на какой-то ресурс, где я могу узнать больше об использовании собственной конфигурации? –

1

Как я понимаю, вы хотите интегрировать app.config в свою DLL. Проверьте это:

How do you load the app.config file into a DLL

+2

Разве это не побеждает объект с конфигурационным файлом в первую очередь? Файлы конфигурации предназначены для разрешения изменений конфигурации для приложения без необходимости перекомпилировать или даже во время выполнения в некоторых случаях – fletcher

+0

Да, но файлы конфигурации всегда конфигурируют проект не несколькими проектами – MUG4N

1

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

2

Почему вы не просто все необходимые настройки в файле конфигурации из проекта B? Если вы используете некоторые инструменты и библиотеки от внешнего поставщика, вы просто делаете то же самое для его настройки.

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

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