Ninjectを使用してコンストラクターでプロパティまたは変数を設定する方法(MVC3 Webアプリケーション)

asp.net-mvc c# ninject
Ninjectを使用してコンストラクターでプロパティまたは変数を設定する方法(MVC3 Webアプリケーション)

インターフェイスITestとITestを実装するクラスTestがあります。

public Test : ITest{...}

私はそのようなクラスを持っています:

public class MyClass
{
 ITest test;
 public MyClass(){...}
}

Ninjectionを使用してテスト変数に新しいTest()の例を設定する方法はありますか? 私はコンストラクタでこのコードを取り除きたいです:

public MyClass()
{
 test = new Test();
}

ありがとうございます。

  0  0


ベストアンサー

コンストラクター注入を使用することをお勧めします、例えば:

public class MyClass {
    private readonly ITest _test;

    [Inject]
    public MyClass(ITest test) {
        _test = test;
    }
}

これにより、クラスの依存関係、つまり 「MyClass」は「ITest」のインスタンスに依存しています。 Ninjectは、コンテナに `ITest`のインスタンスを登録している限り、この依存性注入を自動的に処理します。

または、プロパティ/フィールドインジェクションを使用できます。

public class MyClass {
    public MyClass() { }

    [Inject]
    public ITest Test { get; set; }
}

public class MyClass {
    [Inject] private ITest _test;

    public MyClass() { }
}

0


タイトルとURLをコピーしました