2012-04-15 5 views
0

これは私のインタフェースとクラス:私はNinjectとキラークラスでライフルを注入することができますどのように静的フィールドに注入する

public interface IWeapon 
{ 
    void Shoot(); 
} 

public interface IWarrior 
{ 
    void Kill(); 
} 

public class Killer : IWarrior 
{ 
    private static IWeapon _weapon; 

    public void Kill() 
    { 
     _weapon.Shoot(); 
    } 
} 

public class Rifle : IWeapon 
{ 
    public void Shoot() 
    { 
    } 
} 

+3

最初に '_weapon'を静的にしたいのですが?確かに2つの異なるキラーが異なる武器を持つことができます... –

+1

致命的なクライスも殺人鬼を襲います:武器の1つのタイプのみ利用可能... :) – Tigran

+2

[InSingletonScope](http://blog.bobcravens.com/2010/) 03/ninject-life-cycle-management-or-scoping /)を使用することができます。 –

答えて

2

これはInSingletonScopeを使用して行う必要があるため、Ninjectは統計情報を注入しません。フィールドはクラス外からアクセスされるべきではないので、フィールドインジェクションもサポートしていません。代わりにコンストラクタまたはプロパティインジェクションを使用してください。

関連する問題