4
在autoFac中,我可以注册一个接口的多个实现。当autofac实例化我的对象时,所有实例都传递给构造函数。Autofac与Structuremap,我如何注入接口的所有实例?
从autofac的文档:here
例如,当Autofac被注入 IEnumerable类型也不会找供应 IEnumerable的部件的构造函数的参数。相反,容器会找到ITask的所有实现,并注入所有这些实现。
是此功能可以在StructureMap?
对于我的课:
public interface IFoo
{
}
public class Foo1 : IFoo
{
}
public class Foo2 : IFoo
{
}
public class UsingFoo
{
public UsingFoo(IEnumerable<IFoo> allFoos)
{
foreach (var foo in allFoos)
{
}
}
}
如何注册我的实现,所以,当UsingFoo被实例化,构造函数将被传递的IFoo的所有实现?
我不认为你是对的。这只会注入一个IFoo实例。我需要SM将IFoo的所有实例注入IEnumerable。 –
rboarman
2012-03-27 17:15:30
@rboarman用一个工作示例更新了我的答案。 – Phill 2012-03-28 23:51:48