InjectionMap 1.5.6

InjectionMap is a very small and extremely lightweight IoC/DI container for .NET.  
InjectionMap allows loose coupling betweeen a client's dependencies and its own behaviour. InjectionMap promotes reusability, testability and maintainability of any part of an application.
InjectionMap supports .Net 4.5, Silverlight 5, Windows Phone 8 or higher and Windows Store apps for Windows 8 or higher.

- InjectionMap uses type mapping to reference the key/reference and the implementation.
- Instances are resolved using reflection or can be provided through a callback whitch allows you to create the instance in your own code.
- It suports a fluent syntax to help keep the code simple, small and clean.
- The desired Constructors can be marked with attributes or will be selected according to the passed arguments.
- Parameters for constructors can be injected or passed at the time of mapping as objects or as delegate expressions.
- InjectionMap is very simple and straightforward.

Bugs, issues or feature wishes can submitted on on the issues page or feel free to fork the project and send a pull request.

Install-Package InjectionMap -Version 1.5.6
dotnet add package InjectionMap --version 1.5.6
<PackageReference Include="InjectionMap" Version="1.5.6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add InjectionMap --version 1.5.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: InjectionMap, 1.5.6"
For F# scripts that support #r syntax, copy this into the source code to reference the package.

Release Notes

- Ensured that InjectionMap is Mutithread tolerant
- Make Defaultconstrucor selectable with .WithConstructor() or .WithConstructor(typeof(void))
- Fixed: Possible Deadlock when using container in multiple threads
- Fixed: Resolving from a MappingContext with a null name creates a empty Componets map
- Fixed: Resolve unmapped types that are deeper in the Dependencytree caused ResolverException

- Added: PropertyInjection
- Added: Pass arguments for constructors directly in resolver method
- Added: Select constructor based on the type of the parameters needed
- Added: Pass InjectionMap.Argument as arguments instances to resolver
- Added: Set delegate providing resolved value directly in Map
- Added: Logging/Tracing
- Fixed: AsConstant didn't allways return same value
- Fixed: Resolving now gets all mapped values from the same context
- Refactored: Moved Expression Interfaces to default namespace
- Refactored: ComponentMapper - Allow access to Context from public
- Refactored: Renamed InjectionFlags.AsConstant to InjectionFlags.Singleton
- Refactored: Renamed InjectionFlags.AsSingleton to InjectionFlags.OverrideAllExisting

- Map to and reslove from a named context
- Add delegate or instance directly to Map<T>()
- Moved Initializer methods from InjectionMapper to MapInitializer

- Rename MappingContainer to MappingContext
- Added public accessor to MappingContext in InjectionMap

- Allow to pass a MappingContainer to InjectionMapper.Initialize(...)
- Constructors that have to be used can be defined when creating the map or when resolving.

- Renamed IInjectionMapper to IMapInitializer
- Moved Exceptions to base namespace
- Moved ComponentMapper to public
- InjectionMapper.Map<T>() now also maps to custom containers
- Added ExtendAll<T>() to InjectionResolver to extend all registered mappings of the type
- Changed License to Ms-PL
- Added InjectionResolver.For<T>() to resolve and extend unmapped types
- Refactored InjectionResolver.ExtendMap<T>() to simply extend existing mappings
- Added CLSComplient Attribute to assembly
- Expression Interfaces don't inherit from IComponentExpression to prevent return values showing component properties. Expression implementaitons additionaly inherit from IComponentExpression.
- Converted internal Ensure implementation to Extensionmethods
- Moved Internal implementation from Resolver, Mapping and Component to InjectionMap.Internal namespace


This package has no dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on InjectionMap:

Package Downloads
InjectionMap.Configuration is a small extension to InjectionMap for defining mappings in the application configuration file.
InjectionMap is a small extension to InjectionMap for WPF Applications. This extension allows viewmodels to be injected into the DataContext of a View (FrameworkElement).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.5.6 944 10/14/2015
1.5.6-RC02 505 4/28/2015
1.5.5 807 1/22/2015
1.5.5-RC9 564 12/22/2014
1.5.5-RC8 575 12/22/2014
1.5.5-RC7 546 12/17/2014
1.5.5-RC6 565 12/16/2014
1.5.5-RC10 522 12/26/2014
1.5.4 1,192 11/4/2014
1.5.3 1,163 11/4/2014
1.5.2 1,154 11/4/2014
1.5.2-RC1 792 11/4/2014
1.5.1 680 10/13/2014
1.5.0 696 10/13/2014
1.5.0-RC1 556 10/13/2014
1.4.8 717 9/3/2014
1.4.7 731 9/2/2014
1.4.7-RC3 558 9/3/2014
1.4.7-RC2 567 9/3/2014
1.4.6 746 8/24/2014
1.4.5 719 8/18/2014
1.4.4 695 7/18/2014
1.4.3 747 5/29/2014
1.4.2 708 5/26/2014
1.4.1 692 5/20/2014
1.3.7 731 5/10/2014
1.3.5 708 5/1/2014
1.3.1 716 4/30/2014
1.2.1 757 4/29/2014
1.2.0 729 4/27/2014
1.1.0 699 4/26/2014
1.0.0 739 4/26/2014