Да, вы можете подключить Autofac и затем делать то, что вы хотите.
Тогда вместо внедрения экземпляра IServiceProvider
вы можете ввести ILifetimeScope
.
Это позволит вам запустить область и заменить реализацию только для этой области, не затрагивая ничего.
using (var scope = _lifetimeScope.BeginScope(builder => builder.Register(_ => new MyClassThatRequiresAConnection(myConnectionString))))
{
// this would resolve the latest registration of the class `MyClassThatRequiresAConnection`
var myClass = scope.Resolve<MyClassThatRequiresAConnection>();
// more code here ...
}