NOTE: Simple Injector v1.2 NOT the latest release. Please click on the Downloads tab above to find the latest Simple Injector release.
This release fixes a few small bugs, adds the possibility to do property injection, improves performance and the SimpleInjector.Extensions.dll is now available for Silverlight.New features and improvements in this release for the SimpleInjector.dll
New features and improvements in this release for the SimpleInjector.Extensions.dll
- An InjectProperties(object) method has been added to the Container. This method enables injecting public properties of a given instance. By adding it to the core library, this method could be optimized for performance and used in integration scenarios without forcing users to use the SimpleInjector.Extensions.dll. (work item 16406).
- The Container now registers itself upon creation. This makes some integration scenarios easier (note this a breaking change for users who currently registered the Container manually).
- The Handled property of the UnregisteredTypeEventArgs was made public. This enables some rare but interesting scenarios were users want to prevent an ActivationException from being thrown when multiple delegates respond to the same ResolveUnregisteredType event. Publication of the property allows users to skip and continue when another delegate already registered that type.
- A new Register(Expression) overload was added to the UnregisteredTypeEventArgs. This allows performance to be improved when resolving types that will be created using unregistered type resolution. (work item 16641).
Bug fixes in this release for the SimpleInjector.dll
- New Register(Container, Type) method was added to allow registration of concrete transient types.
- The SimpleInjector.Extensions.dll is now also available for Silverlight. (work item 16398).
- Performance optimization in the RegisterOpenGeneric and RegisterSingleOpenGeneric extension methods. Types can now be resolved as quickly as types that are registered using container.Register<TService, TImplementation>() and container.RegisterSingle<T>(T), which are the fasted type of registrations.
Bug fixes in this release for the SimpleInjector.Extensions.dll
- Container.GetAllInstances<T> and Container.GetAllInstances(Type) did not trigger unregistered type resolution. (work item 16419).
- FuncSingletonInstanceProducer<T> did not reset the CyclicDependencyValidator in case of an exception, which causes the CyclicDependencyValidator to go of when that failing producer was called multiple times, hiding the real cause of failure.
- Bug fix in both the RegisterOpenGeneric and RegisterSingleOpenGeneric extension methods of the SimpleInjector.Extensions.dll. The methods did not take generic type constraints and generic type reordering into consideration. (work item 16053). These methods are now expected to work in even the most bizar cases :-).
- The RegisterAll(Container, Type, params Type) method was removed, because it was never picked by C# compiler when doing overload resolution, although it did show up in IntelliSense. (Note this a breaking change for users who called this method as static method instead of extension method).
- The RegisterManyForOpenGeneric and RegisterManySinglesForOpenGeneric extension methods that take an IEnumerable<Assembly> or Assembly failed when a Anonymously Hosted DynamicMethods Assembly was supplied, which would typically happen when the method was called with _AppDomain.CurrentDomain.GetAssemblies()