Ninject构造函数的多个接口参数

时间:2014-02-24 16:23:14

标签: c# inversion-of-control ninject

你如何使用ninject注入多个参数? 例如:

IWeapon weap;
ISheild sheld;
ISoap isoap;
public myclass(IWeapon weapon, IShield shield, ISoap soap)
{
    weap = weapon;
    sheld = shield;
    isoap = soap;
}

已经尝试了这个它给了我一个ninject激活异常所有我做的绑定他们是使用

kernel.Bind<IWeapon>().To<Sword>();
kernel.Bind<IShield>().To<DragonSheild>();
kernel.Bind<ISoap>().To<Safeguard>();

我无法运行我的项目,它一直给我一个ninject异常。

1 个答案:

答案 0 :(得分:0)

您提供的示例不是来自您的申请? 我认为你的应用程序看起来像这样:

public class TerminalService : ITerminalService
{
  public TerminalService(IPOSJobService posJobService){}
}

public class POSJobService : IPOSJobService
{
  public class POSJobService(ITerminalService terminalsService){}
}

如果确实如此,则问题很明显。这两个班级相互交叉参考 这是一种亲子关系,但依赖应该是一种方式。