MixedImmutableEnvironment
An injection environment implementation with a mixed evaluation strategy.
Mixed evaluation strategy here means that:
Components are created eagerly, i.e. when this environment is created
Injections are performed lazily within the same component, e.g. a component A that wants to have B injected will only actually get B when A performs a
get
on B.
Mixed evaluation allows for lock-free thread safety for component creation and occasional locking thread safety on injections.
Due to injections being made lazily, this environment supports cyclic dependencies (class A requires B, class B requires A) and self-injections (class C requires itself).
Characteristics
Eager object creation. Objects are created upon construction of this environment.
Lazy object injection. Objects are injected upon first use, and are only computed once.
Idempotent/Immutable. Objects cannot be replaced, injection methods will always return the same thing.
Compatible with installable extensions.
Constructors
Types
Functions
Creates an Injector that can be used as a property delegator, bound against the given identifier.
Returns a sequence of all the known identifiers present in this environment.
Returns the resolver associated with the given identifier.