Stashbox by Peter Csajtai

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

 ContainerContext

using Stashbox.Configuration; 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 IResolutionStrategy ResolutionStrategy { get; } public ContainerConfiguration ContainerConfiguration { get; } public ContainerContext(IContainerContext parentContext, IResolutionStrategy resolutionStrategy, ContainerConfiguration containerConfiguration) { ContainerConfiguration = containerConfiguration; ParentContext = parentContext; RootScope = new ResolutionScope(this); RegistrationRepository = new RegistrationRepository(containerConfiguration); DecoratorRepository = new DecoratorRepository(); ResolutionStrategy = resolutionStrategy; } } }