11

依存性注入を解決するためにNInjectを使用する多層アプリケーションがあります。各層には特定のNInjectモジュールがあります。

サービスレイヤー-ServiceModule
DataLayer-DataModule

私のプレゼンテーション層では、すべてのモジュールをロードしたくありません。その代わりに、たとえば、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 に答える