Container.RegisterConditional Method (Type, Registration, Predicate(PredicateContext))

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

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.

Reference