Marker DI - Leaky Abstraction.
Unity IDevice :
container.RegisterType<IDevice, ActualDevice>("actual");
container.RegisterType<IDevice, OtherActualDevice>("otherActual");
container.RegisterType<IListener, Listener1>("listener1",
new InjectionConstructor(
new ResolvedParameter<IDevice>("actual")));
container.RegisterType<IListener, Listener2>("listener2",
new InjectionConstructor(
new ResolvedParameter<IDevice>("otherActual")));
, :
var listener1 = container.Resolve<IListener>("listener1");
var listener2 = container.Resolve<IListener>("listener2");
DI Factory. . . DI.