Конфигурация замка Виндзор В нескольких проектах

#c# #configuration #web-config #castle-windsor #app-config

#c# #конфигурация #web-config #castle-windsor #app-config

Вопрос:

У меня есть решение для нескольких проектов (веб-сайт и различные другие проекты для DAL / BL и т.д.). Я пытаюсь интегрировать Castle Windsor в бизнес-логику, чтобы помочь мне с написанием некоторых модульных тестов (я знаю, что модульные тесты и Castle Windsor действительно должны быть интегрированы до завершения проекта, долгая история).

Проблема, с которой я сталкиваюсь, связана с конфигурационными файлами, я добавил информацию о конфигурации Castle Windsor в мой BL projects app.config, но когда веб-сайт или модульные тесты (оба из которых находятся в разных проектах) обращаются к бизнес-логике, Castle Windsor, похоже, обращается к своим собственным конфигурационным файлам, а не к конфигурационному файлу в BL.

Конечно, мне не нужно добавлять информацию о конфигурации к каждому проекту в моем решении? Это кажется немного бессмысленным.

Ответ №1:

Это может быть проще, чем вы думаете. Настройте Castle Windsor в отдельном файле конфигурации, например «Components.config» и поместите его в какое-нибудь общее место.

После этого вам нужно только добавить этот файл «как ссылку» в ваши проекты. Это достигается, когда вы щелкаете правой кнопкой мыши в какой-либо папке или проекте и выбираете «Добавить существующий элемент». В браузере файлов проверьте, есть ли на кнопке «Добавить» какая-нибудь стрелка. Щелкните там и выберите «Добавить в качестве ссылки».

Вы заметите, что на значке вашего файла конфигурации в Solution Explorer есть какая-то стрелка, похожая на ярлык Windows. Теперь щелкните по этому связанному файлу и откройте его свойства, а в разделе «Действие сборки» выберите «Копировать всегда». Вот и все!

Разве вы не знаете, как использовать автономные файлы конфигурации в Castle Windsor? Ознакомьтесь с этой статьей:

Обратите внимание, что теперь вы редактируете один файл и влияете на все связанные файлы сразу!

Комментарии:

1. Я люблю stack overflow 🙂 спасибо за ваш быстрый ответ. Теперь все работает идеально

2. Нет проблем! Мне нравится делиться знаниями: D