Я создаю систему на .NET 4.5, которая будет иметь разные реализации (т.е. реализована локально у разных клиентов). У каждого клиента будет своя собственная инфраструктура и структура базы данных, поэтому я строю систему, сильно полагаясь на луковичную архитектуру, которая сама по себе полагается на интерфейсы и DI. Таким образом, я могу использовать клиентские реализации «Репозиторий» и «Сервис».
Моя цель - без перекомпиляции установить систему на клиентский сервер (точка входа в систему - это, по сути, служба Windows, содержащая периодически запускаемую бизнес-логику, а также размещение служб WCF). Чтобы это работало, я имею в виду своего рода папку «Зависимости» или «Плагины» в качестве подпапки папки, содержащей исполняемый файл службы Windows, которая будет содержать специфичную для клиента DLL, в которой есть конкретные классы, реализующие все необходимые интерфейсы. на котором полагается приложение.
Я пытаюсь добиться этого с помощью Simple Injector. Я ознакомился с сборкой SimpleInjector.Packaging, а также с абзацем «Динамическая регистрация плагинов» здесь, но я все еще застрял и не знаю, с чего начать, например, что я должен определить в какой сборке.
Мне нужен конкретный образец того, как этого добиться.
Можно ли использовать для этой цели узел упаковки SimpleInjector Packaging, или я вижу это неправильно? Если да, то как?
Кто-нибудь, пожалуйста, просветите меня.
Спасибо
ps: чтобы быть на 100% ясным: интерфейсы и конкретные реализации явно разделены на разные сборки. Это вопрос о том, как динамически подключать все с помощью Simple Injector.