我給ASP.NET MVC 3預覽版1一旋轉,並想配置ninject與它。最好的方法仍然是使用ninject.web.mvc extension?示例Scott Gu posts不運行。它會拋出「錯誤激活IControllerFactory」異常。ASP.NET MVC 3預覽配置爲ninject
4
A
回答
4
相信斯科特谷的代碼應該讀...
public static void RegisterServices(IKernel kernel)
{
kernel.Bind<IProductRepository>().To<SqlProductRepository>();
kernel.Bind<IControllerFactory>().To<NinjectControllerFactory>();
}
凡NinjectControllerFactory被發現...
using Ninject.Web.Mvc;
所以,是的,你仍然需要Ninject MVC擴展。
也許有更好/更新的方法來定義MVC 3中的默認控制器工廠,但這是我做到的。
如this post所示,也可能有一些來自MvcServiceLocator的奇怪行爲。
6
您不需要「Ninject.Web.Mvc」在MVC 3中配置Ninject,因爲我在帖子中標題爲"Dependency Injection in ASP.NET MVC 3 using Ninject"。
1
確保當你使用從您的IDependencyResolver的ninject內核,那你打電話叫
_kernel.TryGet(serviceType)
的MVC框架將試圖抓住不同的IControllerFactory,如果它是可用的,如果你打電話「TryGet」,它將返回null,框架將使用默認的Controller Factory。
如果您使用的是unity,請確保將解決方案包裝在try/catch塊中,並在catch中返回null。雖然這樣會很慢,因爲你並不希望有一個catch塊被視爲執行流程的正常部分。
相關問題
- 1. ASP.NET MVC 3預覽圖像
- 2. ASP.Net MVC 3配置
- 3. ASP.NET MVC 4 + Ninject MVC 3 =此對象
- 4. 誤差的AccountController和Ninject 2和ASP.NET MVC 2預覽2
- 5. ASP.Net MVC 3,Ninject和Quartz.Net - 如何?
- 6. Ninject與ASP.NET MVC 3 global.asax重寫
- 7. ASP.NET MVC中的Ninject注入問題3
- 8. Ninject + ASP.NET MVC + InRequestScope
- 9. 淨MVC 3與Ninject和[進樣]屬性配置
- 10. MVC 3 Ninject錯誤
- 11. ASP.NET MVC 3預編譯
- 12. ASP.Net MVC 5 + SignalR + Ninject
- 13. ASP.NET MVC 3 - 證書 - 配置錯誤
- 14. 配置Ninject
- 15. ASP.NET MVC 3 Url.Action匹配
- 16. 如何使用LinqToSQL和存儲庫模式爲ASP.NET MVC配置Ninject
- 17. Asp.Net API 2 Ninject和OWIN OAuth配置
- 18. Ninject和配置
- 19. MVC 4 ASP.NET配置
- 20. 幫助Ninject在asp.net MVC 2
- 21. ASP.NET MVC Ninject/DI - 此對象
- 22. Ninject Asp.net mvc 2 404錯誤?
- 23. 適合與Ninject,ASP.NET MVC 5
- 24. ASP.net MVC RoleProvider與Ninject&CodeFirst
- 25. Ninject注入模型asp.net MVC
- 26. Ninject with ASP.Net webforms和MVC
- 27. C#MVC 3/jQuery預覽按鈕CMS
- 28. ASP.NET MVC 2預覽1預覽2遷移
- 29. ASP.NET MVC 3 - 設置路由
- 30. ASP.Net MVC 3 Unity IoC處置
使用IMvcServiceLocator的Ninject實現,您在技術上不需要NinjectControllerFactory。 DefaultControllerFactory產生給MvcServiceLocator以創建控制器。只要Ninject有必要的綁定,就很好。 – 2010-08-02 23:03:58
要添加到我的上述評論中,目前MvcServiceLocator需要IControllerFactory的綁定。如果你沒有一個(是的,即使是DefaultControllerFactory),它也會拋出這個錯誤。 – 2010-08-02 23:06:09