Замок Виндзор - регистрация IoC для открытых общих интерфейсов?
Позволяет ли Castle Windsor регистрировать открытый общий интерфейс или мне нужно регистрировать каждый возможный типизированный экземпляр отдельно?
Пример - ниже с типами T, Z сбой при компиляции, если я отдельно не укажу T, Z с сильными типами.
container.Register(Component
.For<IAdapterFactory<T,Z>>()
.ImplementedBy<AdapterFactory<T,Z>>()
.LifeStyle.PerWebRequest);
Ответы
Ответ 1
Он называется open generic, и да, Windsor действительно поддерживает это.
container.Register(Component
.For(typeof(IAdapterFactory<,>))
.ImplementedBy(typeof(AdapterFactory<,>))
.LifestylePerWebRequest());