現在、サービス層とデータ アクセス層に分割されているアプリケーションがあります (MVC 層が進行中です)。クラスで必要なボイラープレート Ninject コードの量を減らそうとしています。
私の最初のアイデアは、UserService と UserDAO によって拡張される各ビジネス オブジェクト タイプ (つまり、UserBase) の基本クラスでした。残念ながら、それでは他のクラス (つまり、すべての Service 実装によって拡張される AbstractService クラス、AbstractDAO クラスなど) を拡張できなくなります。
私の 2 番目のアイデアは、渡されたさまざまな IModule 実装の IKernel を返す単純なファクトリでした。残念ながら、各クラスには IKernel メンバー変数が必要でしたが、これで問題が解決し、AbstractService と AbstractDAO を作成できるようになりました。
class NinjectKernelFactory
{
private NinjectKernelFactory()
{
}
public static IKernel getKernel(params IModule[] modules)
{
IKernel kernel = new StandardKernel(modules);
return kernel;
}
}
Ninject の使用を最適化するための他のアイデアはありますか?