Stashbox by Peter Csajtai

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

 IFluentServiceConfigurator<TService, TConfigurator>

public interface IFluentServiceConfigurator<TService, TConfigurator> : IFluentServiceConfigurator<TConfigurator>, IBaseFluentConfigurator<TConfigurator> where TConfigurator : IFluentServiceConfigurator<TService, TConfigurator>
Represents the generic fluent service registration api.
TConfigurator AsServiceAlso<TAdditionalService>()

Binds the currently configured registration to an additional service type.

TConfigurator InjectMember<TResult>(Expression<Func<TService, TResult>> expression, object dependencyName = null)

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

TConfigurator WithDependencyBinding<TDependency>(object dependencyName)

Binds a constructor or method parameter to a named registration, so the container will perform a named resolution on the bound dependency.

TConfigurator WithFinalizer(Action<TService> finalizer)

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

TConfigurator WithInitializer(Action<TService, IDependencyResolver> initializer)

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