All Projects → ipjohnson → Grace

ipjohnson / Grace

Licence: mit
Grace is a feature rich dependency injection container library

Projects that are alternatives of or similar to Grace

Swinjectstoryboard
Swinject extension for automatic dependency injection via Storyboard
Stars: ✭ 211 (-12.08%)
Mutual labels:  dependency-injection, ioc-container
Python Dependency Injector
Dependency injection framework for Python
Stars: ✭ 1,203 (+401.25%)
Mutual labels:  dependency-injection, ioc-container
Simplify
Simplify is a set of .NET libraries that provide infrastructure for your applications. DI and mocking friendly.
Stars: ✭ 52 (-78.33%)
Mutual labels:  dependency-injection, ioc-container
Servicemanager
🔌 Most basic implementation of dependency injection container for JavaScript
Stars: ✭ 29 (-87.92%)
Mutual labels:  dependency-injection, ioc-container
Autofac.annotation
Autofac extras library for component registration via attributes 用注解来load autofac 摆脱代码或者xml配置和java的spring的注解注入一样的体验
Stars: ✭ 140 (-41.67%)
Mutual labels:  dependency-injection, ioc-container
Simpleinjector
An easy, flexible, and fast Dependency Injection library that promotes best practice to steer developers towards the pit of success.
Stars: ✭ 966 (+302.5%)
Mutual labels:  dependency-injection, ioc-container
Singularity
A extremely fast ioc container for high performance applications
Stars: ✭ 63 (-73.75%)
Mutual labels:  dependency-injection, ioc-container
Typescript Ioc
A Lightweight annotation-based dependency injection container for typescript.
Stars: ✭ 427 (+77.92%)
Mutual labels:  dependency-injection, ioc-container
Microresolver
Extremely Fast Dependency Injection Library.
Stars: ✭ 138 (-42.5%)
Mutual labels:  dependency-injection, ioc-container
Disco
PSR-11 compatible Dependency Injection Container for PHP.
Stars: ✭ 135 (-43.75%)
Mutual labels:  dependency-injection, ioc-container
Di
Dependency Injection and IoC framework for PHP
Stars: ✭ 5 (-97.92%)
Mutual labels:  dependency-injection, ioc-container
Container
A lightweight yet powerful IoC container for Go projects
Stars: ✭ 160 (-33.33%)
Mutual labels:  dependency-injection, ioc-container
Weaver
Dependency Injection framework for Swift (iOS/macOS/Linux)
Stars: ✭ 546 (+127.5%)
Mutual labels:  dependency-injection, ioc-container
Vue.js With Asp.net Core Sample
This provides a sample code using vue.js running on ASP.NET Core
Stars: ✭ 44 (-81.67%)
Mutual labels:  dependency-injection, ioc-container
Swinject
Dependency injection framework for Swift with iOS/macOS/Linux
Stars: ✭ 4,958 (+1965.83%)
Mutual labels:  dependency-injection, ioc-container
Poodinis
A dependency injection framework for D with support for autowiring.
Stars: ✭ 57 (-76.25%)
Mutual labels:  dependency-injection, ioc-container
Kangaru
🦘 A dependency injection container for C++11, C++14 and later
Stars: ✭ 297 (+23.75%)
Mutual labels:  dependency-injection, ioc-container
Autofac
An addictive .NET IoC container
Stars: ✭ 3,713 (+1447.08%)
Mutual labels:  dependency-injection, ioc-container
React Ioc
Hierarchical Dependency Injection with new React 16 Context API
Stars: ✭ 133 (-44.58%)
Mutual labels:  dependency-injection, ioc-container
Node Dependency Injection
The NodeDependencyInjection component allows you to standarize and centralize the way objects are constructed in your application.
Stars: ✭ 140 (-41.67%)
Mutual labels:  dependency-injection, ioc-container

Grace

Build status Coverage Status Stack Overflow

Grace is a feature-rich dependency injection container designed with ease of use and performance in mind.

using Grace.DependencyInjection;

var container = new DependencyInjectionContainer();

container.Configure(c => c.Export<BasicService>().As<IBasicService>());

var basicService = container.Locate<IBasicService>();

It's as easy as create, configure, and locate.

Getting Grace

NuGet package supports .Net 4.5 and .Net Standard 1.0.

Getting Started - A getting started guide for Grace as well as documentation for more complex topics

Features in Grace

  • Fluent interface or Attributes for configuration allowing for maximum flexibility
  • Supports child containers and light weight lifetime scopes
  • Contextual binding support (similar to NInject)
  • IDisposable objects created by the container will be tracked and disposed by the container unless configured otherwise.
  • Performance characteristics that make it one of the fastest containers available. (Benchmarks)
  • Supports special types
    • IEnumerable<T> - supports resolving collections as IEnumerable<T> as well as most other types of collections List<T>, ReadOnlyCollection<T>, T[] and any collection that implements ICollection<T>
    • Func<T> - supports resolving Func<T> automatically
    • Lazy<T> - when resolved a Lazy<T> will be created that resolves T from the scope it was created in
    • Owned<T> - object resolved within a Owned<T> will have their disposal lifecycle tied to the Owned<T> (similar to Autofac)
    • Meta<T> - objects resolved within a Meta<T> are resolved along with their metadata
    • Custom Delegates - any delegate that returns a type can be automatically resolved.
    • Custom interface factories with Grace.Factory
  • Many LifeStyles supported including Singleton, SingletonPerScope, SingletonPerRequest (MVC4, MVC5 & WCF packages), SingletonPerObjectGraph, SingletonPerAncestor<T>, and WeakSingleton. If none of the provided life styles meet your need you can always implement your own ICompiledLifeStyle class.
  • Built in support for the decorator pattern
  • Support for custom wrappers (Func<T> and Meta<T> are examples of built-in wrappers)
  • ASP.Net Core supports
  • Source Link support enabled
  • Release Notes

Special thanks to @silkfire for the logo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].