В .NET Framework вы можете использовать Ninject для достижения контекстной привязки.
Например:
Bind<IWarrior>().To<Samurai>().WhenInjectedInto(typeof(OnLandAttack));
Bind<IWarrior>().To<SpecialNinja>().WhenInjectedInto(typeof(AmphibiousAttack));
Это означает, что вы можете внедрять различные конкретные реализации в зависимости от того, что выВнедрение в.
Я не вижу ни одного метода для достижения того же результата в .NET Core 2.2 - это невозможно или просто требуется дополнительная конфигурация?
Пример кода из Ninject site