如何在ASP.NET MVC 3应用程序中使用Ninject 2?

时间:2011-01-23 23:39:33

标签: asp.net-mvc asp.net-mvc-3 ninject

我到处搜索,我似乎找不到在我的项目中实现ninject的方法。我听说过将MvcApplication派生到NinjectHttpApplication。但即使我将lib添加到引用中,也找不到NinjectHttpApplication。我找不到Ninject.Web.Mvc。有没有人有一个指南,以使这项工作,我想要做的就是能够将我的界面从我的域绑定到现有的实现。

2 个答案:

答案 0 :(得分:3)

http://weblogs.asp.net/shijuvarghese/archive/2010/04/30/dependency-injection-in-nerddinner-app-using-ninject.aspx

看起来大部分是通过

完成的
Global.asax.cs
public class MvcApplication : NinjectHttpApplication

Application_Start替换为

protected override void OnApplicationStarted()
{
    AreaRegistration.RegisterAllAreas();
    RegisterRoutes(RouteTable.Routes);
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new MobileCapableWebFormViewEngine());
    RegisterAllControllersIn(Assembly.GetExecutingAssembly());
}

然后创建Ninject模块并配置内核,所有内容都在博客文章中解释,源代码可在此处获取:http://nerddinneraddons.codeplex.com/

虽然上述内容适用于MVC 2,但它仍应适用

答案 1 :(得分:3)

请在此处查看有关MVC3扩展程序的博文:http://www.planetgeek.ch/2010/11/13/official-ninject-mvc-extension-gets-support-for-mvc3/

github上的源代码附带了一个功能齐全的示例应用程序:https://github.com/ninject/ninject.web.mvc

可以在github上找到二进制文件:https://github.com/ninject/ninject.web.mvc/archives/master 或者在构建服务器上:http://teamcity.codebetter.com/project.html?projectId=project3&tab=projectOverview