C# Ninject是否同时支持多注射和工厂方法?

C# Ninject是否同时支持多注射和工厂方法?,c#,dependency-injection,ninject,C#,Dependency Injection,Ninject,Ninject支持多重注入: public class Samurai { public Samurai(IWeapon[] allWeapons) { var allWeapons = allWeapons; } } 它还支持自动生成的工厂: public class Samurai { public Samurai(Func<IWeapon> weaponFactory) { var weapon

Ninject支持多重注入:

public class Samurai 
{
    public Samurai(IWeapon[] allWeapons) 
    {
        var allWeapons = allWeapons;
    }
}
它还支持自动生成的工厂:

public class Samurai 
{
    public Samurai(Func<IWeapon> weaponFactory) 
    {
        var weapon = weaponFactory.Invoke();
    }
}

有没有办法实现这一点,或者我必须手动实现工厂?

将构造函数更改为:

public Samurai(IEnumerable<IWeapon> weaponFactories) 
公共武士(IEnumerable武器工厂)
IEnumerables
每次迭代集合时都会生成一个新实例(以防生活方式是暂时的)。所以从某种意义上说,
IEnumerable
是工厂(它的行为就像一个流)。

试着把它改成
Func
@Steven:也不起作用,值得一试:)如果你注入一个
IEnumerable
?也许每次迭代集合时,Ninject都会返回一个新实例。(只是想在这里加载)。哇,这实际上每次都会产生新的实例!谢谢!请把它作为答案贴出来,这样我就可以接受了。
Error activating IntPtr
No matching bindings are available, and the type is not self-bindable.
public Samurai(IEnumerable<IWeapon> weaponFactories)