DI与Ninject在类库中

时间:2009-09-25 11:39:22

标签: dependency-injection ninject

我在我的网络应用程序中成功使用Ninject,方法是从NinjectHttpApplication派生我的全局并使用我的web.config中的NinjectHttpModule

我现在要做的是在我的一个类库中使用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为空,所以我显然做错了。

另外,如果我使用构造函数注入并使用我的构造函数

public Class1([Inject] ICustomerRepository repository)

我将如何实例化Class1

Ninject相当新,所以这可能都很容易。

1 个答案:

答案 0 :(得分:3)

看起来我已经知道怎么做了 - 哎呀:)

Ninject - how and when to inject