Skip to content

Allows swapping out IoC containers without rewriting registration or resolve code.

License

Notifications You must be signed in to change notification settings

RandomEngy/AnyContainer

Repository files navigation

AnyContainer lets you write type registration code and static resolve code that's easily swappable to any number of IoC containers.

How to use

Register:

AnyContainerBase container = new SimpleInjectorAnyContainer();
container.RegisterSingleton<ILogger, Logger>();
container.RegisterTransient<ITransientService, TransientService>();
container.RegisterSingleton<IOtherService>(() => new OtherService("abc"));

Setting up static resolver:

StaticResolver.SetResolver(container);

Resolving from static context:

var logger = StaticResolver.Resolve<ILogger>();

For good design you should try to avoid doing a lot of static resolves and instead take the dependencies on the constructor. But sometimes it's still handy to be able to do it.

Supported containers

  • Simple Injector
  • DryIoc
  • Unity

About

Allows swapping out IoC containers without rewriting registration or resolve code.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published