Stashbox by Peter Csajtai

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

 IResolutionScope

Represents a resolution scope.
object Name { get; }

The name of the scope, if it's null then it's a regular nameless scope.

The parent scope.

TDisposable AddDisposableTracking<TDisposable>(TDisposable disposable)

Adds a service for further disposable tracking.

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

Adds a service with a cleanup delegate.

Called by every node of the internal graph when the RuntimeCircularDependencyTrackingEnabled is true. Checks for runtime circular dependencies in the compiled delegates.

Gets the names of the already opened scopes.

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

Returns an existing scoped object or adds it into the scope if it doesn't exist.

Invalidates the delegate cache.

Called by every node of the internal graph when the RuntimeCircularDependencyTrackingEnabled is true. Resets the runtime circular dependency checks state for a node.