A lightweight, high performance, experimental IoC container for .NET
STATUS: Experimental Breaking changes may occur in the future.
http://nuget.org/packages/Speedioc
Speedioc is a lightweight, high performance IoC container for .NET that uses code generation to dynamically generate and compile container assemblies. Containers can be precompiled and support static and dynamic injection including constructor, field, property and method injection. Once a container is configured and compiled, it is immutable but resolves instances very fast.
Speedioc supports saving the generated C# source code file which can be used to read and debug allowing Visual Studio to step right into the generated source. The generated source code file contains detailed comments on the generated members which may be used to map them back to your registration code.
Speedioc supports the following types of injection:
- Constructor injection
- Field injection
- Property injection
- Method injection
For each injection type, values may be:
- Literal, such as a string or a literal value type (bool, int, etc.)
- Resolved from the same container
- Provided dynamically from a value factory, a delegate that provides
the value (e.g.
Func<T>
) usually generated by a lambda expression
Speedioc is very simplistic and is not a full-featured dependency injection framework.
At this time, it does not support:
- Resolving all instances of a type. This has not been implemented.
- There is no support for configuration files of any kind. All configuration and type registration is programmatic.
- There's no automatic wire-up of abstractions to concretions.
- There's no automatic discovery of registries.
As previously stated, Speedioc is experimental at this time. This does mean that future versions may have significant breaking changes.
Some of the code base that is expected to change and/or break include:
- The Registration API
- The Lifetime subsystem
You can quickly install Speedioc into your project using the NuGet package. To install Speedioc, run the following command in the Package Manager Console:
PM> Install-Package Speedioc
For examples of how to begin using Speedioc, see the Quick Start Lessons located in the Speedioc source code within the Speedioc.Tests project. See Speedioc.Tests/QuickStartLessons/README.txt for more information.