Stashbox by Peter Csajtai

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

 FluentServiceConfigurator<TService, TImplementation, TConfigurator>

public class FluentServiceConfigurator<TService, TImplementation, TConfigurator> : BaseFluentServiceConfigurator<TService, TImplementation, TConfigurator> where TConfigurator : FluentServiceConfigurator<TService, TImplementation, TConfigurator>
Represents the generic fluent service registration api.
public TConfigurator AsImplementedTypes()

Registers the given service by all of it's implemented types.

public TConfigurator AsServiceAlso<TAdditionalService>()

Binds the currently configured registration to an additional service type.

public TConfigurator AsServiceAlso(Type serviceType)

Binds the currently configured registration to an additional service type.

public TConfigurator DefinesScope(object scopeName = null)

It means this registration would be used as a logical scope for it's dependencies, the dependencies registered with the InNamedScope and with the same name as it's param will be preferred during resolution.

public TConfigurator WithInstance(TService instance, bool wireUp = false)

Sets an instance as the resolution target of the registration.

public TConfigurator WithName(object name)

Sets the name of the registration.