Я не понял, что во всех примерах IOC, которые я смог найти, один интерфейс может иметь только один реализованный класс в словаре сопоставления классов. Независимо от того, какой DI или сервисный локатор
На мой взгляд, это немного глупо, нет?
Я не понял, что во всех примерах IOC, которые я смог найти, один интерфейс может иметь только один реализованный класс в словаре сопоставления классов. Независимо от того, какой DI или сервисный локатор
На мой взгляд, это немного глупо, нет?
Все контейнеры внедрения зависимостей, которые я просматриваю в моей книге поддерживать несколько регистраций одного и того же интерфейса:
Замок Виндзор
container.Register(Component
.For<IIngredient>()
.ImplementedBy<Steak>());
container.Register(Component
.For<IIngredient>()
.ImplementedBy<SauceBéarnaise>());
Автофак
builder.RegisterType<SauceBéarnaise>().As<IIngredient>();
builder.RegisterType<Steak>().As<IIngredient>();
Единство
container.RegisterType<IIngredient, Steak>();
container.RegisterType<IIngredient, SauceBéarnaise>("sauce");
Есть больше контейнеров, которые поддерживают это; это только примеры. Моя книга содержит гораздо более подробные примеры.