Avg Release Cycle
1443 days ago
v3.2.2-finalApril 02, 2014
- 👻 bool IRequest.ForceUnique: In case there is an uncoditional and a conditional binding, return the conditional one. In case there are multiple unconditional or conditional bindings, throw an exception.
- IResolutionRoot.TryGetAndThrowOnInvalidBinding (extension method): Returns null if there is no binding, but throws ActivationException in case there is a binding which could not be activated.
- TypeMatchingConstructorArgument introduced.
- ToConstructor() can now accept results from methods as argument e.g. ToConstructor(_ => new Foo(this.GetBar())
- WhenNoAncestorMatches, WhenAnyAncestorMatches and WhenNoAncestorNamed When overloads
- WeakConstructorArgument and WeakPropertyValue that keep a weak reference to the value only so that Ninject has no reference on them when caching the created instance.
- 👍 Overloads for WhenInjectedInto and WhenInjectedExactlyInto that take multiple types to support multiple allowed parents.
- ➕ Added WhenAnyAncestorNamed and marked mispelled WhenAnyAnchestorNamed as obsolete
- 🚀 Release method was moved from IKernel to the IResolutionRoot interface
- Private properties of base class were not checked for existence of setter and Inject attribute
- 🚀 When an object that is the scope of another object is released an Exception was thrown.
- 0️⃣ The default scope can be changed in the NinjectSettings using
- Open generics can now be passed to WhenInjectedInto
- 🛠 Fixed race condition in the GarbageCollectionCachePruner
- The constructor scorer ignores implicit bindings
- The constructor scorer ignores self bindings
- 👻 For classes that have several virtual indexers and at least one of them overridden an ambiguous match exception was thrown when they were injected.