2014-02-24 122 views
0

如何使用ninject注入多個參數? 例如:Ninject contstructor多接口參數

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

Ninject.dll中發生類型'Ninject.ActivationException'的異常,但未在用戶代碼中處理 – Patrick87

回答

0

你給的例子不是來自你的應用程序的權利嗎? 我覺得你的應用程序是這樣的:

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

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

如果這是真的,那麼這個問題是清楚的。這兩個班級互相交叉參考。
這是一種親子關係,但依賴性應該是一種方式。

+0

你是對的彼得..謝謝!已經解決了! =) – Patrick87