Stashbox by Peter Csajtai

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

 FluentServiceConfigurator<TService, TImplementation, TConfigurator>

public class FluentServiceConfigurator<TService, TImplementation, TConfigurator> : FluentServiceConfigurator<TConfigurator> where TImplementation : TService where TConfigurator : FluentServiceConfigurator<TService, TImplementation, TConfigurator>
Represents the generic fluent service registration api.
public TConfigurator WithAsyncInitializer(Func<TImplementation, IDependencyResolver, CancellationToken, Task> initializer)

Sets an async initializer delegate which will be called when InvokeAsyncInitializers is called.

public TConfigurator WithDependencyBinding<TResult>(Expression<Func<TImplementation, TResult>> expression, object dependencyName = null)

Sets a member (property / field) as a dependency that should be filled by the container.

public TConfigurator WithFactory(Func<TImplementation> factory, bool isCompiledLambda = false)

Sets a parameter-less factory delegate for the registration.

public TConfigurator WithFactory<TImpl>(Func<TImpl> factory, bool isCompiledLambda = false)

Sets a parameter-less factory delegate for the registration.

public TConfigurator WithFactory(Func<IDependencyResolver, TImplementation> factory, bool isCompiledLambda = false)

Sets a factory delegate for the registration that takes an IDependencyResolver as parameter.

public TConfigurator WithFactory<TImpl>(Func<IDependencyResolver, TImpl> factory, bool isCompiledLambda = false)

Sets a factory delegate for the registration that takes an IDependencyResolver as parameter.

public TConfigurator WithFactory<T1>(Func<T1, TImplementation> factory, bool isCompiledLambda = false)

Sets a parameterized factory delegate for the registration.

public TConfigurator WithFactory<T1, TImpl>(Func<T1, TImpl> factory, bool isCompiledLambda = false)

Sets a parameterized factory delegate for the registration.

public TConfigurator WithFactory<T1, T2>(Func<T1, T2, TImplementation> factory, bool isCompiledLambda = false)

Sets a parameterized factory delegate for the registration.

public TConfigurator WithFactory<T1, T2, T3>(Func<T1, T2, T3, TImplementation> factory, bool isCompiledLambda = false)

Sets a parameterized factory delegate for the registration.

public TConfigurator WithFactory<T1, T2, T3, T4>(Func<T1, T2, T3, T4, TImplementation> factory, bool isCompiledLambda = false)

Sets a parameterized factory delegate for the registration.

public TConfigurator WithFactory<T1, T2, T3, T4, T5>(Func<T1, T2, T3, T4, T5, TImplementation> factory, bool isCompiledLambda = false)

Sets a parameterized factory delegate for the registration.

public TConfigurator WithFinalizer(Action<TImplementation> finalizer)

Sets a delegate which will be called when the container is being disposed.

public TConfigurator WithInitializer(Action<TImplementation, IDependencyResolver> initializer)

Sets a delegate which will be called when the service is being constructed.