Я делаю так, чтобы хост собирал каждую надстройку в коллекцию по мере их обнаружения, а затем передавал эту коллекцию каждой надстройке при ее инициализации.То, что вы передаете надстройкам, это интерфейсы других надстроек, так как это действительно все, что хост знает о них.
Хост должен инициализировать каждую надстройку, а затем, как только они все будут инициализированы, дать им сигнал на активацию, после чего они обнаружат другие надстройки и начнут делать свое дело.Каждая надстройка должна предоставлять метод WhoAreYou, чтобы они могли узнать, кто еще установлен, когда они активированы.Получение ваших надстроек из базового класса упростит это.Как только вы выяснили это для одного, это будет сделано для всех них.
Этот подход использует хост только для сбора и распространения интерфейсов надстроек, при этом надстройки напрямую связываются друг с другом черезконвейер контракта вместо маршрутизации сообщений через хост.