ContainerRegisterConditional Method (Type, Registration, PredicatePredicateContext)

Simple Injector
Conditionally registers that registration will be used every time a serviceType is requested and where the supplied predicate returns true. The predicate will only be evaluated a finite number of times; the predicate is unsuited for making decisions based on runtime conditions.

Namespace:  SimpleInjector
Assembly:  SimpleInjector (in SimpleInjector.dll) Version: 5.3.0
Syntax

public void RegisterConditional(
	Type serviceType,
	Registration registration,
	Predicate<PredicateContext> predicate
)

Parameters

serviceType
Type: SystemType
The base type or interface to register. This can be an open-generic type.
registration
Type: SimpleInjectorRegistration
The Registration instance to register.
predicate
Type: SystemPredicatePredicateContext
The predicate that determines whether the registration can be applied for the requested service type. This predicate can be used to build a fallback mechanism where multiple registrations for the same service type are made. Note that the predicate will be called a finite number of times and its result will be cached for the lifetime of the container. It can't be used for selecting a type based on runtime conditions.
Exceptions

ExceptionCondition
ArgumentNullExceptionThrown when one of the arguments is a null reference.
ArgumentExceptionThrown when serviceType is open generic or registration is not assignable to serviceType.
InvalidOperationException Thrown when this container instance is locked and can not be altered.
See Also

Reference