Conditionally registers that a new instance of TImplementation will be
returned every time a TService is requested (transient) 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<TService, TImplementation>( Predicate<PredicateContext> predicate ) where TService : class where TImplementation : class, TService
Parameters
- predicate
- Type: SystemPredicatePredicateContext
The predicate that determines whether the TImplementation 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.
Type Parameters
- TService
- The interface or base type that can be used to retrieve the instances.
- TImplementation
- The concrete type that will be registered.
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | Thrown when one of the arguments is a null reference. |
InvalidOperationException | Thrown when this container instance is locked and can not be altered. |
Remarks
See Also