Unity, Autofac и, вероятно, немало других пакетов внедрения зависимостей поддерживают «контейнеры внедрения зависимостей с ключом», которые позволяют регистрировать несколько реализаций интерфейса и однозначно идентифицировать их с помощью ключа (будь то строка, целое число, перечисление или что-то еще).
Однако .NET Core, по крайней мере, насколько я вижу, не имеет такой функции, и если бы я попытался реализовать что-то подобное, мне пришлось бы сделать обходной путь или найдите для него какие-нибудь хакерские решения. Мне интересно, есть ли конкретная причина, по которой это не было реализовано в .NET Core?
Пример Unity:
container.RegisterType("1");
container.RegisterType("2");
Пример Autofac:
builder.RegisterType().Keyed("1");
builder.RegisterType().Keyed("2");
Подробнее здесь: https://stackoverflow.com/questions/609 ... p-net-core