11

我有一个使用 NInject 来解决依赖注入的多层应用程序。每一层都有一个特定的 NInject 模块:

服务层 - ServiceModule
数据层 - 数据模块

在我的表示层中,我真的不想加载每个模块。而不是我想要的,例如,加载 ServiceModule 并且模块负责加载其依赖项。

我怎样才能做到这一点?

例如,这是我的 ServiceModule:

public class ServicesModule : NinjectModule
{
    public override void Load()
    {
        ...
        Bind<IProductService>().To<ProductService>();
        ...
    }
}
4

2 回答 2

18

很简单,在 NInject 模块中,您可以访问内核:

Kernel.Load(new [] { new [YourModule]() });
于 2013-01-25T16:07:03.903 回答
-2

如果您的模块有一个依赖的模块,您可以从该模块(而不是NinjectModule)继承并调用base.Load()

public override void Load()
{
    base.Load();
    ...
}

这将有效地链接模块。

于 2016-01-18T13:35:58.527 回答