こんにちは私はMVC3アプリでNinject.MVCNugetパッケージを使用しており、コンストラクターインジェクション用に現在のバインディングを設定しています。
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IUnitOfWork>().To<ERSUnitOfWork>();
kernel.Bind<IRepository<Recipe>>().To<GenericRepository<Recipe>>();
}
私のコントローラーの例は以下のとおりです。
public class RecipesController : Controller
{
private readonly IUnitOfWork unitOfWork;
private readonly ERSDbContext context;
private readonly IRepository<Recipe> recipeRepository;
public RecipesController(IUnitOfWork unitOfWork, IRepository<Recipe> recipeRepository)
{
this.context = new ERSDbContext();
this.unitOfWork = unitOfWork;
this.recipeRepository = recipeRepository;
}
}
コントローラーからプライベートDBContextプロパティを削除し、Ninjectが実行しているコンストラクターインジェクションの一部として新しいERSDbContext()をERSUnitOfWorkとGenericRepositoryのコンストラクターに渡したいのですが、できればコントローラー内でERSDbContextクラスの初期化を維持しますか?
これを行う方法についての助けをいただければ幸いです。ありがとう
NinjectWebCommonクラスでDbContextを作成する必要がないことを期待しています。これは、コントローラーで初期化する必要があります。