asp.net-mvc-4 – 用于Asp.net Web API的Ninject
发布时间:2020-12-16 07:05:52 所属栏目:asp.Net 来源:网络整理
导读:使用Ninject和Web API时出现此错误,但它适用于MVC控制器: Type 'App.Web.Controllers.ProductController' does not have a default constructor NinjectControllerFactory: public class NinjectControllerFactory : DefaultControllerFactory { private I
使用Ninject和Web API时出现此错误,但它适用于MVC控制器:
Type 'App.Web.Controllers.ProductController' does not have a default constructor NinjectControllerFactory: public class NinjectControllerFactory : DefaultControllerFactory { private IKernel ninjectKernel; public NinjectControllerFactory() { ninjectKernel = new StandardKernel(); AddBindings(); } protected override IController GetControllerInstance(RequestContext requestContext,Type controllerType) { return controllerType == null ? null : (IController)ninjectKernel.Get(controllerType); } public void AddBindings() { ninjectKernel.Bind<IProductRepository>().To<EFProductRepository>(); } } Global.asax.cs: BundleConfig.RegisterBundles(BundleTable.Bundles); ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory()); ProductController: public class ProductController : ApiController { private IProductRepository repository; public ProductController(IProductRepository ProducteRepository) { this.repository = ProductRepository; } public IEnumerable<Product> GetAllProducts() { return repository.Products.AsEnumerable(); } } 解决方法
您已重写DefaultControllerFactory.但这用于实例化ASP.NET MVC控制器(一个派生自System.Web.Mvc.Controller).它与ASP.NET Web API控制器(源自System.Web.Http.ApiController的控制器)完全无关.
所以基本上你在这里做的是依赖注入ASP.NET MVC.如果要将其用于Web API,可以查看以下指南: > http://www.strathweb.com/2012/05/using-ninject-with-the-latest-asp-net-web-api-source/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 我可以从HttpContext获取控制器吗?
- 剃刀 – 错误RZ3007:目标标签名称不能为空或空格
- ASP.NET MVC 中枚举生成下拉框
- 保护asp.net Web应用程序的步骤清单?
- asp.net-mvc-3 – Orchard CMS小部件显示类型
- 如何从asp中检索多个选定的值:checkbox .net c#
- asp.net-mvc – 当我用fiddler检查时,VS2013 RTM每秒发出一
- 9.翻译系列:EF 6以及EF Core中的数据注解特性(EF 6 Code-
- asp.net – Web表单(.aspx)命名约定
- asp-classic – 找出真正的文件类型
推荐文章
站长推荐
- asp.net-core – 在ASP.NET Core MVC中提供一些静
- asp.net – 从One Build任务创建多个SetParamete
- asp.net-mvc – MVC 4 Razor – 动态命名javascr
- asp.net-mvc – ASP.NET MVC网站的品牌/皮肤
- asp.net – aspx radiobutton控制列表在一行中
- asp.net – NuGet不断崩溃Visual Studio 2013
- ASP.NET Web API内存中测试中的内部服务器错误
- asp.net-mvc – MVC 5实体框架6执行存储过程
- asp.net – WCF,WebAPI和OWIN IIS集成管道.根据路
- 在ASP.NET应用程序中使用Ajax更新面板的优点和缺
热点阅读