Stashbox by Peter Csajtai

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

 FluentServiceConfigurator<TConfigurator>

public class FluentServiceConfigurator<TConfigurator> : BaseFluentConfigurator<TConfigurator> where TConfigurator : FluentServiceConfigurator<TConfigurator>
Represents the fluent service registraton 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 preffered during reolution.

public TConfigurator InNamedScope(object scopeName)

Sets a scope name condition for the registration, it will be used only when a scope with the given name requests it.

public TConfigurator InScopeDefinedBy(Type type)

Sets a condition for the registration that it will be used only within the scope defined by the given type.

public TConfigurator InScopeDefinedBy<TScopeDefiner>()

Sets a condition for the registration that it will be used only within the scope defined by the given type.

public TConfigurator When(Func<TypeInformation, bool> resolutionCondition)

Sets a generic condition for the registration.

public TConfigurator WhenDependantIs<TTarget>()

Sets a parent target condition for the registration.

public TConfigurator WhenDependantIs(Type targetType)

Sets a parent target condition for the registration.

public TConfigurator WhenHas<TAttribute>() where TAttribute : Attribute

Sets an attribute condition for the registration.

public TConfigurator WhenHas(Type attributeType)

Sets an attribute condition for the registration.

public 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.

public TConfigurator WithLifetime(LifetimeDescriptor lifetime)

Sets the lifetime of the registration.

public TConfigurator WithName(object name)

Sets the name of the registration.

public TConfigurator WithPerScopedRequestLifetime()

Sets the lifetime to PerScopedRequestLifetime. This lifetime will create a new instance between scoped services. This means that every scoped service will get a different instance but within their dependency tree it will behave as a singleton.

public TConfigurator WithScopedLifetime()

Sets a scoped lifetime for the registration.

public TConfigurator WithSingletonLifetime()

Sets a singleton lifetime for the registration.