DI与Ninject在类库中

Cia*_*ill 7 dependency-injection ninject

我在我的Web应用程序中成功使用Ninject NinjectHttpApplication,方法是NinjectHttpModule从我的web.config中导出我的Global

我现在要做的是在我的一个类库中使用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;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我实例化Class1并调用时GetCustomer(),它CustomerRepository是null,所以我显然做错了.

此外,如果我使用构造函数注入并具有我的构造函数

public Class1([Inject] ICustomerRepository repository)
Run Code Online (Sandbox Code Playgroud)

我将如何进行实例化Class1

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

Cia*_*ill 3

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

Ninject - 如何以及何时注射

  • 现在这很有趣 (9认同)