简单的回答是不可以的,为什么呢?不管是自带的DI还是使用autofac,都不可以实现的。这个根源在于ASP.Net Core的设计,不在于Ioc框架,在ASP.Net中我们所有的服务提供容器(ServiceProvder)在程序启动后就已经指定在上下文中componentContext。这个就是我们说的范围scope。一但这个Scope指定后不管在哪里都是无法替换的,也就是说无法再修改了。即使如你所愿你拿到RootContainer,重新添加修改注册类型,但是旧的scope一直存在,也不会受影响。
在原生的框架里我们是通过ServiceCollections 来添加注册类型的。一但启动它会调用方法 services.BuildServiceProvder(),然后返回一个容器(IServiceProvder)来添加到上下文中。除了重启程序外我们无法改变它。