Stashbox by Peter Csajtai

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

 ContainerConfiguration

public class ContainerConfiguration
Represents a container configuration

If it's set to true, the container will not track circular dependencies performed with Lazy<T>.

public bool CircularDependencyTrackingEnabled { get; }

If it's set to true the container will track circular dependencies in the dependency graph and will throw an exception if any of it found.

The action which will be invoked when the container configuration changes.

The constructor selection rule.

public ILifetime DefaultLifetime { get; }

The default lifetime, used when a service isn't configured with a lifetime.

If it's set to true, the container will use the default Microsoft expression compiler.

A filter delegate used to determine which members should be auto injected and which are not.

If it's set to true, the container will inject members even without DependencyAttribute.

The member injection rule.

If it's set to true, the container will use an unnamed registration when a named one not found for a request with dependency name.

If it's set to true, the container will inject optional and default values for missing dependencies and primitive types.

If it's set to true the container will track circular dependencies in the compiled delegates and will throw an exception if any of it found.

public bool SetUniqueRegistrationNames { get; }

If it's set to true the container will set a unique registration name for every new registration even if the implementation type is the same.

public bool TrackTransientsForDisposalEnabled { get; }

If it's set to true the container will track transient objects for disposal.

If it's set to true, the container will treat the name of a constructor/method parameter or member name as a dependency name used by named resolution.

Represents the configuration which will be invoked when an unknown type being registered.

public bool UnknownTypeResolutionEnabled { get; }

If it's set to true the container will try to register the unknown type during the activation.