Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="2.9.0-preview-518" />

 ResolutionScope

public bool HasScopedInstances { get; }

public object Name { get; }

public IResolutionScope ParentScope { get; }

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

public TDisposable AddDisposableTracking<TDisposable>(TDisposable disposable) where TDisposable : IDisposable

public void AddScopedInstance(Type key, object value, object name = null)

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 ISet<object> GetActiveScopeNames()

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

public object GetScopedInstanceOrDefault(Type key, object name = null)

public object GetService(Type serviceType)

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)