English Deutsch

Feature Comparison

Feature .NET 4.0 .NET 3.5 CF 3.5 SL 3
Dynamic arguments x x x x
XML registration x x
Named registrations x1
Inject collections x x x x
Inject factory x x x
Inject Lazy<T> x

1 Named registrations have been removed in LightCore 1.4

Features

Dependencies can be registered ...

  • ... with a given instance.
  • ... using a delegate - optimal for refactorings and slow systems.
  • ... by declaring a contract and its implementation.
  • ... using XML (via LightCore.Configuration.dll).
  • ... with open and closed generic types.

A registration can ...

  • ... receive constructor arguments at registration- or runtime - named, typed or as anonymous types.
  • ... be assigned to a group. Once a group becomes activated, its elements are being registered.
  • ... receive a strategy for reuse, such as singleton.

LightCore is extensible ...

  • ... with custom-defined lifecycles if the predefined ones are not enough.
  • ... with custom-defined registration modules that are derived from RegistrationModule, e.g., to enable convention based registrations.

Additionally, LightCore offers ...

  • ... integrated support for recycling instances using various lifecycles such as transient, singleton, thread singleton and HTTP request.
  • ... the possibility to inject the dependency injection container itself to be able to create new instances dynamically using a service locator.
  • ... support for the CommonServiceLocator interface using an integrated adapter.

Create registrations on demand ...

  • ... with collections as dependencies, where LightCore returns all registered instances for the TDependency type.
  • ... with a factory.
  • ... with the newly introduced Lazy<T> type of .NET 4.0 to support lazy initializing.
  • ... with a registered open generic type such as IRepository<>.
  • ... for any non-registered type by returning an instance of itself.

LightCore can be integrated ...

  • ... using the LightCore.Configuration.dll component to enable XML-based configuration.
  • ... with ASP.NET WebForms using an HttpModule which provides property injection.
  • ... with ASP.NET MVC using a ControllerFactory and a ControllerRegistrationModule.