7

グローバルをweb.configから派生させて使用することで、Web アプリケーションで Ninject を正常に使用していますNinjectHttpApplicationNinjectHttpModule

私が今やりたいことは、私のクラス ライブラリの 1 つで DI を使用することですが、これを行う方法がわかりません。次のダミークラスがあります。

/// <summary>
/// Testing Ninject DI in a class library
/// </summary>
public class Class1
{
    [Inject]
    ICustomerRepository CustomerRepository { get; set; }

    public string SomeText { get; set; }

    public Class1(string text)
    {
        MyConfig config = new MyConfig();
        config.Configure();

        SomeText = text;
    }

    public Customer GetCustomer()
    {
        var customer = CustomerRepository.GetCustomer();
        return customer;
    }
}

public class MyConfig
{
    public IKernel Configure()
    {
        IKernel kernel = new StandardKernel(new NinjectRepositoryModule());
        return kernel;
    }
}

をインスタンス化Class1して呼び出すGetCustomer()と、CustomerRepositoryが null になるため、明らかに何か間違ったことをしています。

また、コンストラクター注入を使用し、コンストラクターを次のようにすると、

public Class1([Inject] ICustomerRepository repository)

どうすればインスタンス化できますClass1か?

Ninject はまったく新しいので、これはすべて非常に簡単なことです。

4

1 に答える 1

3

私はすでにこれを行う方法を知っているようです-おっと:)

Ninject - いつ、どのように注入するか

于 2009-09-25T12:27:04.233 に答える