私はNinjectをテストしており、シングルトンクラスにリポジトリを挿入する方法を理解しようとしています。以下 はsucesfullyシングルトンインスタンスを取得する
[TestMethod]
public void SimpleTestSingleton()
{
using (IKernel kernel = new StandardKernel())
{
kernel.Bind<ITestRepository>().To<TestRepository>();
var testSingletonInjectionClass =
kernel.Get<TestSingletonInjectionClass>();\
Assert.IsNotNull(testSingletonInjectionClass);
}
}
合格試験方法は、私は2つの質問
1.を持って
public interface ITestRepository
{
void TestRepositoryMethod();
}
public class TestRepository:ITestRepository
{
public void TestRepositoryMethod()
{
}
}
public class TestSingletonInjectionClass
{
private readonly ITestRepository _repository;
public TestSingletonInjectionClass(
ITestRepository repository)
{
_repository = repository;
}
public void TestMethod()
{
}
}
...リポジトリとシングルトンクラスの例を働いてもらうために、この正しい方法であり、シングルトンクラスのインスタンス?アプリのコードからシングルトンインスタンスクラスを取得する方法
kernel.Get<TestSingletonInjectionClass>()
2.。テストメソッドでは、Ninjectカーネルを作成し、Getメソッドにアクセスします。 ninjectカーネルのフォームコードにアクセスするには?消費クラスのコンストラクタに渡すことで、あなたはそれを得るの実装では
kernel.Bind<TestSingletonInjectionClass>().ToSelf().InSingletonScope();
:
コンストラクタでクラスのインスタンスを取得する方法を投稿してください。ご助力ありがとうございます。 – Tomas
コンストラクタパラメータとして追加するだけです。 –
この実装を使用して出会った1つの問題は、抽象クラスでそのようなコンストラクタを追加すると、派生クラスにも同じコンストラクタが必要になることです。 – Tomas