Unity - разрешение по конфигурации без привязки к типу - PullRequest
0 голосов
/ 01 февраля 2012

Я хочу разрешить тип, не имея ссылки на проект, в котором этот тип существует. Я хочу, чтобы Resolve загрузил правильную сборку во время выполнения.

Проблема в том, что во время выполнения я решаю, какой тип использовать ... и в соответствии с этим я хочу загрузить правильную сборку.

Как я могу это сделать?

спасибо

1 Ответ

0 голосов
/ 01 февраля 2012

Что вы ожидаете от Unity? Vodoo

Вы можете настроить Unity с помощью app / web.config и просто удалить нужные сборки в базовой папке приложения. Но это конфигурация во время разработки.

Или вы используете код для настройки контейнера, который позволяет вам использовать Assembly.Load, чтобы получить доступ ко всем сборкам, на которые нет прямой ссылки в вашем домене приложения. Тогда вам придется использовать какое-то отражение для извлечения типов, которые будут динамически регистрироваться.

Или вы можете пропустить подход "давайте будем еще динамичнее" и ссылаться на все необходимые сборки в какой-то загрузочной версии.

Третьим вариантом будет модульная конфигурация вашего кода и использование соглашений для регистрации этих модулей во время выполнения. Unity не поддерживает этот третий подход "из коробки", но в проекте TecX имеется порт механизма конфигурации StructureMap. См. Документацию или код в проекте TecX.Unity.Configuration . Доступны тесты, чтобы продемонстрировать, как это работает.

...