Типы регистров на основе базового класса
я пытаюсь понять Виндзор как контейнер МОК. Проблема ясейчас я должен зарегистрировать все мои модели просмотра одновременно.
Мы взглянули на документы и подумали, что следующий код должен работать. Однако, когда я проверяю контейнер впоследствии, ничего не регистрируется.
container.Register(Classes.FromThisAssembly()
.BasedOn()
.LifestyleTransient());
гдеViewModelBase
мой базовый класс
Также попробовал следующее:
container.Register(Classes.FromThisAssembly()
.InSameNamespaceAs()
.LifestyleTransient());
Необходимые зависимости могут быть разрешены, а видовые модели - нет. Я полагаюя что-то упускаю здесь очевидное?
редактировать
Мои зависимости зарегистрированы следующим образом:
this.container.Register(Component.For().ImplementedBy());
this.container.Register(Component.For().ImplementedBy());
ОБНОВИТЬ
Так как предложения неЯ планировал добавить код из моего базового класса и viewmodel здесь. При этом я заметил, что мой viewmodel-класс былinternal sealed
, При изменении его наpublic sealed
вышеуказанный код работал.
Может кто-нибудь объяснить, почему внутренние классы могутбыть зарегистрированным в контейнере? Я'мы уже протестировали другие контейнеры IOC с точно такой же настройкой, и они нене жалуюсь на это.