using System; using System.Collections.Generic; using ModestTree; namespace Zenject { [NoReflectionBaking] public class SubContainerCreatorByInstanceGetter : ISubContainerCreator { readonly Func _subcontainerGetter; public SubContainerCreatorByInstanceGetter( Func subcontainerGetter) { _subcontainerGetter = subcontainerGetter; } public DiContainer CreateSubContainer(List args, InjectContext context, out Action injectAction) { Assert.That(args.IsEmpty()); injectAction = null; // It is assumed here that the subcontainer has already had ResolveRoots called elsewhere // Since most likely you are adding a subcontainer that is already in a context or // something rather than directly using DiContainer.CreateSubContainer return _subcontainerGetter(context); } } }