Skip to content

wade/Speedioc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Speedioc

A lightweight, high performance, experimental IoC container for .NET

STATUS: Experimental Breaking changes may occur in the future.

NuGet Package

http://nuget.org/packages/Speedioc

Overview

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.

Injection

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

What Else Should I Know?

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

Getting Started

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.

About

A lightweight, high performance, experimental IoC container for .NET

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages