Я разместил an issue на SM repo.can StructureMap auto-register Handler <T> для IHandler <T>?
Мой вопрос похож на this one, но я бы хотел локализовать проблему.
Предположим, у меня есть общий интерфейс IPrinter<T>
и его общая реализация Printer<T>
. Я хотел бы, чтобы StructureMap разрешил конкретный закрытый тип Printer<string>
, когда я сделаю container.GetInstance<IPrinter<string>>
.
Явная регистрация работает нормально здесь:
container.Configure(r => r.For(typeof (IPrinter<>)).Use(typeof (Printer<>)));
Но материал сканирования не удается: RegisterConcreteTypesAgainstTheFirstInterface()
результаты 202 No Default Instance defined
StructureMap за исключением, когда я пытаюсь решить IPrinter<string>
.
Есть ли способ выполнить поведение, которое я хочу, без явной настройки?
Спасибо! Проверьте обновление, я сделал его более понятным. '.For (typeof (IPrinter <>)). Используется (typeof (Printer <>)'), но то, что я ищу, действительно автоматический способ регистрации простых случаев. И я думаю, что это просто, если это только одна (общая) реализация общего интерфейса. – vorou
@ vorou - я отредактировал свой ответ, посмотрите. – LetMeCodeThis
Я знаю о явных способах этого сделать. То, что я ищу, - это * автоматический * один, под которым я хочу написать только строку 'RegisterConcreteTypesAgainstTheFirstInterface()'. Я не хочу перечислять все общие типы, которые у меня есть, в моем приложении, чтобы они их зарегистрировали. – vorou