У меня есть абстрактный базовый класс Search
.Абстрактный класс IndexedRepositorySearch
происходит от Search
.Абстрактный класс FacetSearch
происходит от IndexedRepositorySearch
.Конкретные классы IngredientFacetSearch
и RecipeFacetSearch
происходят от FacetSearch
.
В настоящее время мы регистрируем все, что происходит от Search
в замке Виндзор, следующим образом:
AllTypes.FromAssembly(assembly)
.BasedOn<Search.Search>()
.WithServiceBase()
.WithServiceSelf()
.LifestyleTransient()
.AllowMultipleMatches()
Когда мызатем позвоните
_container.ResolveAll<FacetSearch>(new { searchInput = input, searchResults });
Это ничего не решает из контейнера.Когда я ставлю точку останова на контейнер после того, как все было зарегистрировано, и проверяю AllComponents
в отладчике, я вижу и IngredientFacetSearch
, и RecipeFacetSearch
, но у каждого из них есть только две связанные службы: их собственная личность и Search
, их база.Что вы ожидаете, учитывая, что они зарегистрированы с .WithServiceBase()
и .WithServiceSelf()
.
Так что вопрос в том, как заставить их решить, позвонив по номеру ResolveAll<FacetSearch>()
?
Я уверен, что эточто-то простое, но я буду проклят, если смогу его найти.
Заранее спасибо.