Project Description

The My.Ioc is an easy-to-use, fast, extensible and capable IoC/DI container written in .NET. It distinguish itself by providing features that are not supported by other containers, such as unregistration, observers, etc. Its hope is to help programmers writing loosely-coupled, highly-cohesive applications in a flexible manner. Using My.Ioc, your code will become easier to write, reuse, test, and modify.

Features

Sample Projects

  1. SimpleSample: A simple example to demonstrate how to use the My.Ioc.
  2. TreeBuilder: Use conditional binding and metadata support to build an addin tree.
  3. ServiceUnregisterAndUpdate: To show how to unregister and update services.
  4. ObserverUsage: Use observers to make your application more responsive.
  5. LazyRegistration: How to implement lazy registration.
  6. UnregisteredConcreteTypeResolution: Resolve unregistered concrete type.
  7. ConstructorSelectAndParameterOverride: Use default parameters and overridden parameters.
  8. PropertyAndMethodInjection: Implement method injection and property injection.
  9. OpenGenericResolution: Resolve open generics.
  10. LifetimeAndLifetimeScope: Basic usage of Lifetime and ILifetimeScope.
  11. ImplementDecorator: How to extend My.Ioc to support decorator.
  12. HowToAvoidCyclicDependency: Avoid cases that cause the cyclic dependency.
  13. GetNotificationOfRegistrationAndUnregistration: Know about the registration changes.

Performance

A performance test project is included in the package, run the project to get the performance profile yourself.