NOTE: Simple Injector v2.2.1 is NOT the latest release. Please click on the Downloads tab above to find the latest Simple Injector release.
This patch release fixes fixes a few small bugs and contains a few performance improvements. The performance of the initialization phase is improved and items of registered collections can now be retrieved with an O(1) characteristic.
Improvements and internal changes for the SimpleInjector.dll
- When a collection is registered using RegisterAll<T>(T), RegisterAll<T>(Type), RegisterAll<T>(IEnumerable<Type>) or RegisterAll(Type, IEnumerable<Type>), retrieving that instance using the generic GetAllInstances<T>() will now return a collection that implements IList<T>. This allows retrieving elements by index with a performance characteristic of O(1). Collections decorated using the RegisterDecorator overloads will maintain this behavior. Note that this is not supported when retrieving instances using GetAllInstances(Type). (work item 19575)
- Each container instance now uses a single dynamic assembly for delegate compilation. This used to be one generic assembly per compiled delegate, but this has much more overhead (especially when running inside the debugger).
Bug fixes for the SimpleInjector.dll
- Container.Verify() only checked the original registration of collections and not whether the final collection (that could be intercepted and decorated) worked as expected. (work item 19596)
- The RegisterAll<TService>(TService) overload that takes in an array of singleton instances, did not let those instances go through the pipeline as would happen when registering a singleton instance using Register<TService>(TService). With the latter method properties and possible other transformations would be applied, while the former only called the initializer delegates. (work item 19576)
- Registering a collection using RegisterAll<object>(Type) failed when one of the supplied types was an interface incorrectly stating the the interface did not inherit from System.Object. (work item 19577)
New features in Integration.Web.Mvc.dll