Simple Injector v1.2

Rating: No reviews yet
Downloads: 688
Change Set: 80796
Released: Sep 30, 2011
Updated: Dec 17, 2011 by dot_NET_Junkie
Dev status: Stable Help Icon

Recommended Download

Application SimpleInjector Runtime Library v1.2.zip
application, 243K, uploaded Sep 30, 2011 - 450 downloads

Other Available Downloads

Application SimpleInjector Silverlight Runtime Library v1.2.zip
application, 241K, uploaded Sep 30, 2011 - 59 downloads
Source Code SimpleInjector Source Code v1.2
source code, 630K, uploaded Oct 5, 2011 - 119 downloads
Documentation SimpleInjector.chm
documentation, 194K, uploaded Sep 30, 2011 - 60 downloads

Release Notes

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
  • 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).

New features and improvements in this release for the SimpleInjector.Extensions.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.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 fixes in this release for the SimpleInjector.Extensions.dll
  • 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()

Reviews for this release

No reviews yet for this release.