Зарегистрируйте свою зависимость следующим образом:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddTransient<IDependency>(_ => new Facade(new Real()));
}
Если у вас есть другие контроллеры, которым нужна другая реализация IDependency, вы захотите зарегистрировать свои контроллеры как службы, позволяя перезаписывать регистрации. Например, если вы хотите, чтобы большинство контроллеров разрешало IDependency как Real, но только MyController разрешало IDependency как Facade, вы можете сделать это:
public void ConfigureServices(IServiceCollection services)
{
// Adds controllers as services, allowing their registrations to be overwritten.
services.AddMvc().AddControllersAsServices();
//services.AddControllers(); REMOVE THIS
// Makes Real the default implementation of IDependency
services.AddTransient<IDependency, Real>();
// Overwrite the default registration of MyController to instantiate using Facade.
services.AddTransient<MyController>(sp =>
new MyController(new Facade(sp.GetService<IDependency>())));
}