Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="4.0.0-preview-675" />

 ContainerConfigurator

public class ContainerConfigurator
Represents a container configurator.

The container configuration.

Sets a callback delegate to call when the container configuration changes.

Enables or disables conventional resolution, which means the container treats the constructor/method parameter or member names as dependency names used by named resolution.

public ContainerConfigurator WithAutoMemberInjection(AutoMemberInjectionRules rule = 4, Func<MemberInfo, bool> filter = null, bool enabled = true)

Enables or disables the auto member-injection without annotation.

Enbales or disables circular dependencies through Lazy objects.

Sets the constructor selection rule used to determine which constructor should the container use for instantiation

Sets the default lifetime used when a service doesn't have a configured one.

Enables or disables the default value injection.

Enables or disables the tracking of disposable transient objects.

Sets an external expression tree compiler used by the container to compile the generated expressions.

public ContainerConfigurator WithLifetimeValidation(bool enabled = true)

Enables or disables the life-span and root resolution validation on the dependency tree.

Enables or disables the selection of named registrations when the resolution request is un-named but with the same type.

Enables or disables the re-building of singletons in child containers. It allows the child containers to effectively override singleton dependencies in the parent. This feature is not affecting the already built singleton instances in the parent.

Sets the actual behavior used when a new service is registered into the container. These options do not affect named registrations. See the RegistrationBehavior enum for available options.

Enables or disables the runtime circular dependency tracking. By default, the container checks for circular dependencies when it builds the expression graph, but this could not prevent stack overflows when factory delegates passed by the user are containing circular dependencies. If you turn this feature on, the container will generate nodes into the expression tree that tracks the entering and exiting resolution calls across user-defined factory delegates.

Enables or disables the unknown type resolution.