Stashbox by Peter Csajtai

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

 ContainerConfiguration

public class ContainerConfiguration
Represents a container configuration
public bool AutoMemberInjectionEnabled { get; }

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

public Func<MemberInfo, bool> AutoMemberInjectionFilter { get; }

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

The member injection rule.

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

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

The constructor selection rule.

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

public bool DefaultValueInjectionEnabled { get; }

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

A delegate to use external expression compilers.

public bool LifetimeValidationEnabled { get; }

When it's true, the container validates the lifetime configuration of the resolution graph via the LifeSpan value, and checks that scoped services are not resolved from the root scope.

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.

The actual behavior used when a new service is going to be registered into the container. See the RegistrationBehavior enum for available options.

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 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.