Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="3.5.0-preview-613" />

 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 member injection without annotation.

Allows circular dependencies through Lazy objects.

Sets the constructor selection rule.

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.

Forces the usage of an external expression tree compiler.

public ContainerConfigurator WithLifetimeValidation(bool enabled = true)

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

Forces the usage of Microsoft expression compiler to compile expression trees.

Enables or disables the resolution of a named registration when a request ha been made without dependency name but with the same type.

Enables or disables the rebuilding of singletons in a child-parent container case with the dependencies overridden in the child, not affecting the already built instance in the parent.

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

Enables or disables the runtime circular dependency tracking which means that the container generates checking calls into the expression tree to detect recursive references even in factory delegates passed by the user during the registration.

Enables or disables the unknown type resolution.

Enables or disables the variance check for generic type resolutions. The container will take variance into account during generic type resolution and will use compatible registrations. e.g. IService{in A} is selected when IService{B} is requested and B implements/extends A.