DotNet5 中 IServiceProvider被大量使用,但具体使用在哪里初始化的?

.Net5中使用Host构建主机:

var host = Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    //webBuilder.UseIIS
                    webBuilder.UseStartup<Startup>();
                }).Build();
            host.Run();

看了一些源码,都没有地方去注入IServiceProvider和IServiceProviderFactory;只有HostBuilder中使用到了,但没有对外传递

_appServices = _serviceProviderFactory.CreateServiceProvider(containerBuilder);

 if (_appServices == null)  {
          throw new InvalidOperationException($"The IServiceProviderFactory returned a null IServiceProvider.");
 }

但最终在startup.cs的configure方法中,app属性上就直接挂载了 ApplicationServiceProvider实例

img

根据DI原则,只有注入了实现类才能构建接口实例,想请问这个实例的依赖注入是在哪里步骤实现的,

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。