当我调用“getInstance”(最后一行)时,我一直收到stackOverflow异常。是的,我所有的类型都实现了itracker。multitracker有一个具有单个参数的构造函数,该参数是itracker的数组。
structuremap似乎忽略了这样一个事实:我告诉它,当请求itracker类型时,multi-tracker是我想要的默认类。
我就是不能让它工作。有什么想法吗?
Container = new Container(x =>
{
//Multitracker takes ITracker[] in its constructor
x.ForRequestedType<MultiTracker>().TheDefault.Is.OfConcreteType<MultiTracker>().TheArrayOf<ITracker>().Contains(z =>
{
z.OfConcreteType<ConcreteType1>(); //ConcreteType1 : ITracker
z.OfConcreteType<ConcreteType2>(); //ConcreteType2 : ITracker
});
x.ForRequestedType<ITracker>().TheDefault.Is.OfConcreteType<MultiTracker>();
});
//Run a test - this explodes
Container.GetInstance<ITracker>();