您好我正在使用Ninject.MVC Nuget包與我的MVC3應用程序,我有一些構造函數注入的當前綁定設置。Ninject.MVC構造函數注入其中注入對象的構造函數採用參數
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財產和通過新的ERSDbContext()來ERSUnitOfWork和GenericRepository的構造爲部分Ninject正在執行的構造函數注入,但最好在控制器內部保持ERSDbContext類的初始化?
任何幫助你如何做到這一點將不勝感激。謝謝
我有點希望它不需要我的NinjectWebCommon類必須創建DbContext,我想要在控制器中初始化。
DbContexts創建起來非常便宜。沒有「初始化」。該對象已創建,但未打開任何連接或構建複雜結構。當第一次調用DbContext時,DbContext使用延遲初始化。 –
相關:http://stackoverflow.com/questions/10585478/one-dbcontext-per-web-request-why。 – Steven
我以前見過這個相關的帖子,我看到了像我的一個簡單項目的方法注入的例子。我的問題是知道如何將其實現到我當前的示例中。 – Pricey