Is there a way to register a single interface which is implemented by more than one concrete class using [simple-injector] and without using template interface?
say we have 2 classes MyClass1
and Myclass2
and both these classes are implementing IInterface1
Now using [simple-injector] we were not able to do this
container.Register<IInterface1, Myclass1>();
container.Register<IInterface1, Myclass2>();
converting existing interface to template interface is kinda a hard job on the existing codebase. Hoping there is some easier out there.
You can register multiple implementation of the same interface with using the
RegisterCollection
method (see documentation: Configuring a collection of instances to be returned)So you need to write:
And now Simple Injector can inject a collection of
Interface1
implementation into your constructor, for example:Or you can explicitly resolve your
IInterface1
implementations withGetAllInstances
: