List Binding - mariaheine/Zenject-But-Wiki GitHub Wiki
When Zenject finds multiple bindings for the same type, it interprets that to be a list. So, in the example code below, Bar
would get a list containing a new instance of Foo1,
Foo2
, and Foo3
:
// In an installer somewhere
Container.Bind<IFoo>().To<Foo1>().AsSingle();
Container.Bind<IFoo>().To<Foo2>().AsSingle();
Container.Bind<IFoo>().To<Foo3>().AsSingle();
...
public class Bar
{
public Bar(List<IFoo> foos)
{
}
}
The order of the list will be the same as the order in which they were added with a Bind
method. The only exception is when you use subcontainers, since in that case the list will be ordered first by the associated subcontainer, with the first set of instances taken from the bottom most subcontainer, and then the parent, then the grandparent, etc.