Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="3.1.0-preview-531" />

 IResolutionScope

public interface IResolutionScope : IDisposable
Represents a resolution scope.
using System; using System.Collections.Generic; namespace Stashbox { public interface IResolutionScope : IDisposable { IResolutionScope ParentScope { get; } bool HasScopedInstances { get; } object Name { get; } void AddScopedInstance(Type key, object value, object name = null); object GetScopedInstanceOrDefault(Type key, object name = null); TDisposable AddDisposableTracking<TDisposable>(TDisposable disposable) where TDisposable : IDisposable; TService AddWithFinalizer<TService>(TService finalizable, Action<TService> finalizer); object GetOrAddScopedItem(int key, object sync, Func<IResolutionScope, object> factory); void InvalidateDelegateCache(); List<object> GetActiveScopeNames(); void CheckRuntimeCircularDependencyBarrier(int key, Type type); void ResetRuntimeCircularDependencyBarrier(int key); } }