2014-06-29 8 views
0

Я работаю над побочным проектом с участием небольшого самостоятельного сервера Nancy для локальной сети для удаленного управления медиаплеером. Чтобы включить поддержку нескольких игроков я реализовал простой механизм плагинов, как это было описано здесь: http://code.msdn.microsoft.com/windowsdesktop/Creating-a-simple-plugin-b6174b62Конфигурирование инъекции зависимостей NancyFx во время выполнения

Динамическая загрузка и выполнение работ большой, но проблема, я бегу в том, как сказать TinyIoC, какой плагин реализации использовать. На данный момент у меня есть подкаталог с именем plugins, где хранятся DLL, а при запуске TinyIoC обнаруживает одну тестовую DLL в этой директории и подключает зависимостей без явного выбора чего-либо.

Я нашел метод Bootstrapper.ConfigureApplicationContainer как место для настройки DI, но поскольку я хочу использовать динамическую систему и не имею серверного проекта ссылку на все сборки плагинов, которых недостаточно в моем случае.

Возможно ли это с помощью TinyIoC или мне нужно искать другой контейнер IoC?

спасибо заранее

+0

Вы считали управляемую расширяемую платформу вместо TinyIoc? – Darek

ответ

0

Не уверен, если это соответствует вашим потребностям, но это предложение так или иначе: Вы могли бы каждый из плагинов делать свою собственную конфигурацию контейнера, имея каждый из них обеспечивает реализацию IRegistrations в plugins .dll.

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

В качестве альтернативы вы можете самостоятельно сканировать каталог плагинов в методе Bootstrapper.ConfigureApplicationContainer и отсканировать плагин .dlls для IRegistrations или собственного пользовательского подключения.

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