Skip to content
hack2root edited this page Aug 23, 2018 · 38 revisions

Welcome to the build wiki!

v1.0.0.19

  • Added API functions
  • All CreateInstance, GetInstance, RegisterType now have the same semantics
  • Exposed public Container API to IContainer
Container.CreateInstance(string)
Container.CreateInstance(string, object[])
Container.CreateInstance(string, string[])
Container.CreateInstance(string, System.Type[])
Container.CreateInstance(System.Type) 
Container.CreateInstance(System.Type, object[])
Container.CreateInstance(System.Type, string[])
Container.CreateInstance(System.Type, System.Type[])
Container.CreateInstance<T>() 
Container.CreateInstance<T>(object[]) 
Container.CreateInstance<T>(string[]) 
Container.CreateInstance<T>(System.Type[])
Container.GetInstance(string) 
Container.GetInstance(string, object[]) 
Container.GetInstance(string, string[]) 
Container.GetInstance(string, System.Type[])
Container.GetInstance(System.Type)
Container.GetInstance(System.Type, object[])
Container.GetInstance(System.Type, string[])
Container.GetInstance(System.Type, System.Type[])
Container.RegisterType(string) 
Container.RegisterType(string, object[]) 
Container.RegisterType(string, string[]) 
Container.RegisterType(string, System.Type[])
Container.RegisterType(System.Type) 
Container.RegisterType(System.Type, object[]) 
Container.RegisterType(System.Type, string[]) 
Container.RegisterType(System.Type, System.Type[]) 
Container.RegisterType<T>()
Container.RegisterType<T>(object[])
Container.RegisterType<T>(string[])
Container.RegisterType<T>(System.Type[])

v1.0.0.18

  • Added API functions

v1.0.0.17

  • Added value types support

v1.0.0.16

  • Added TypeBuilderOptions class
  • Added sample implementation of property-based type dependency injector

v1.0.0.15

v1.0.0.14

  • Added type registration parameters
  • Added support for generic parameter types
  • Use standart type definiton (Type.ToString())

v1.0.0.13

  • Added runtimes for .NET Standart 2.0, .NET Framework 4.5/4.5.1/4.5.2/4.6/4.6.1/4.6.2/4.7/4.7.1/4.7.2

v1.0.0.12

  • Added runtime default checks, to avoid System.MissingMethodException and System.Reflection.AmbiguousMatchException.

v1.0.0.11

  • Added automatic type attribute overwrite optional parameter to the build system
  • By default, type runtime attributes overrides each other and optionally can be turned off. Exception will be trown.

v1.0.0.10

  • Added method CanRegisterParameter to ITypeFilter to control parameter registration

v1.0.0.9

  • Added public sealed classes TypeDependencyObject, TypeInjectionObject

v1.0.0.8

  • Added totally customizable type system
  • Added ability to use interfaces as first-class objects

v1.0.0.7

  • Enable/disable automatic type resolution
  • Enable/disable automatic type instantiation

v1.0.0.5

  • Automatic parameters cleanup
  • Registered ValueType instantiation
  • RuntimeAliasedTypes,RuntimeNonAliasedTypes,RuntimeTypes & RuntimeTypeAliases properties
  • Reset() function

v1.0.0.4

  • Removed public type specificator requirement

v1.0.0.3

  • Added support for automatic type resolution (type dependency resolution)

v1.0.0.2

  • Added support for multiple dependency injection attributes

v1.0.0.1

  • Added support for default parameterless constructor with parameters injection using attributes

Description

  • Interface first-class support (instantiation, strong typing, external assembly)
  • Circular references detection in type registration
  • Automatic type resolution for all supported types
  • Pure type instantiation (weak coupling)
  • Declarative metadata attribute driven initialization
  • Lazy type resolution and initialization (supports pure dependency injection decoupling anti-pattern)
  • Singleton initialization support
  • Automated and manual type registration
  • Types aliases (user-friendly type identification)
  • External assembly types support

v1.0.0.0

  • Elimination of overlapped attribute specificators (removes violation of the SOLID principles)
  • Circular references detection phase moved to type registration rather instantiation
  • Automatic type resolution for all supported types if used in type instantiation
  • Pure type instantiation as descriptive string with particular constructor and passing corresponding parameters

Features

  • Declarative metadata attribute driven initialization
  • Lazy type resolution and initialization (supports pure dependency decoupling anti-pattern)
  • Circular references detection
  • Singleton initialization
  • Automated and manual type registration
  • Type aliases
  • External assembly types

Goal

.NET Dependency Injection framework is framework to build automation of complex types. Build can use declarative approach to define dependencies between types and their requirements. Constructor injection uses type resolution to resolve dependencies

Continious Integration

CircleCI TravisCI

Academic papers:

Dependency Injection for Programming by Optimization, Zoltan A. Kocsis and Jerry Swan

  1. School of Mathematics, University of Manchester, Oxford Road, Manchester M13 9PL, UK. zoltan.kocsis@postgrad.manchester.ac.uk
  2. Computer Science, University of York, Deramore Lane, York, YO10 5GH, UK.

Links

Donate

Support via PayPal

Please, feel free to donate me 5$ to expand project development (wiki, samples, etc.)

Clone this wiki locally
You can’t perform that action at this time.