Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="3.2.8" />

 ContainerContext

using Stashbox.Configuration; using Stashbox.Expressions; using Stashbox.Registration; using Stashbox.Resolution; namespace Stashbox { internal class ContainerContext : IContainerContext { public IRegistrationRepository RegistrationRepository { get; } public IDecoratorRepository DecoratorRepository { get; } public IContainerContext ParentContext { get; } public IResolutionScope RootScope { get; } public ContainerConfiguration ContainerConfiguration { get; set; } public ContainerContext(IContainerContext parentContext, ResolutionStrategy resolutionStrategy, ExpressionFactory expressionFactory, ContainerConfiguration containerConfiguration) { ContainerConfiguration = containerConfiguration; ParentContext = parentContext; RegistrationRepository = new RegistrationRepository(containerConfiguration); DecoratorRepository = new DecoratorRepository(); RootScope = new ResolutionScope(resolutionStrategy, expressionFactory, this); } } }