В настоящее время я пытаюсь создать небольшой сервер приложений, на котором будут размещаться несколько служб WCF. Эти службы (и, конечно, их зависимости) должны создаваться с помощью контейнера DI / IoC (в настоящее время LightCore, но, поскольку я использую его через CommonServiceLocator, его легко обменять).
К сожалению, я наткнулся на проблему. Очевидно, я должен создать экземпляры ServiceHost для размещения упомянутых служб WCF. Я уже создал настраиваемый InstanceProvider и ServiceBehavior для обработки всех зависимостей сервисов, НО Конструктору ServiceHost необходим Тип сервиса сервиса для размещения. На данный момент в моей программе я знаю только интерфейсный тип, поскольку только контейнер DI знает, какая реализация службы используется в настоящее время.
Дешевым методом было бы создать «фиктивный» экземпляр типа сервиса через Service Locator и дать конструктору ServiceHost вывод myDummyInstance.GetType (), но это просто больно смотреть, бесполезная реализация и использование Service Локатор вместо DI ... должен быть лучший способ.
Есть идеи у кого-нибудь? :)