AnyContainer lets you write type registration code and static resolve code that's easily swappable to any number of IoC containers.
AnyContainerBasecontainer=newSimpleInjectorAnyContainer();container.RegisterSingleton<ILogger,Logger>();container.RegisterTransient<ITransientService,TransientService>();container.RegisterSingleton<IOtherService>(()=>newOtherService("abc"));StaticResolver.SetResolver(container);varlogger=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.
- Simple Injector
- DryIoc
- Unity