Stashbox by Peter Csajtai

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

 ResolutionScope

public object Name { get; }

public IResolutionScope ParentScope { get; }

public object Activate(Type type, object[] arguments)

public TDisposable AddDisposableTracking<TDisposable>(TDisposable disposable)

public TService AddWithFinalizer<TService>(TService finalizable, Action<TService> finalizer)

public IDependencyResolver BeginScope(object name = null, bool attachToParent = false)

public TTo BuildUp<TTo>(TTo instance)

public void CheckRuntimeCircularDependencyBarrier(int key, Type type)

public void Dispose()

public object GetOrAddScopedObject(int key, object sync, Func<IResolutionScope, object> factory)

public IDependencyResolver PutInstanceInScope(Type typeFrom, object instance, bool withoutDisposalTracking = false, object name = null)

public object Resolve(Type typeFrom, bool nullResultAllowed = false, object[] dependencyOverrides = null)

public object Resolve(Type typeFrom, object name, bool nullResultAllowed = false, object[] dependencyOverrides = null)

public IEnumerable<TKey> ResolveAll<TKey>(object[] dependencyOverrides = null)

public IEnumerable<object> ResolveAll(Type typeFrom, object[] dependencyOverrides = null)

public Delegate ResolveFactory(Type typeFrom, object name = null, bool nullResultAllowed = false, Type[] parameterTypes)