小编Dec*_*lan的帖子

MVC5,Web API 2和Ninject

我用Web API 2创建了一个新的MVC5项目,然后我从NuGet添加了Ninject.MVC3包.

构造函数注入适用于MVC5控制器,但在尝试将其与Web API控制器一起使用时出现错误.

尝试创建"UserProfileController"类型的控制器时发生错误.确保控制器具有无参数的公共构造函数.

工作MVC5控制器的构造函数:

public class HomeController : Controller
{
    private IMailService _mail;
    private IRepository _repo;

    public HomeController(IMailService mail, IRepository repo)
    {
        _mail = mail;
        _repo = repo;
    }
}
Run Code Online (Sandbox Code Playgroud)

非工作Web API控制器的构造函数:

public class UserProfileController : ApiController
{
    private IRepository _repo;

    public UserProfileController(IRepository repo)
    {
        _repo = repo;
    }
}
Run Code Online (Sandbox Code Playgroud)

下面是完整的NinjectWebCommon.cs文件:

[assembly: WebActivator.PreApplicationStartMethod(typeof(DatingSite.App_Start.NinjectWebCommon), "Start")]
[assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(DatingSite.App_Start.NinjectWebCommon), "Stop")]

namespace DatingSite.App_Start
{
using System;
using System.Web;

using Microsoft.Web.Infrastructure.DynamicModuleHelper;

using Ninject;
using Ninject.Web.Common;
using DatingSite.Services;
using DatingSite.Data;

public static class …
Run Code Online (Sandbox Code Playgroud)

ninject asp.net-web-api asp.net-mvc-5

72
推荐指数
4
解决办法
5万
查看次数

标签 统计

asp.net-mvc-5 ×1

asp.net-web-api ×1

ninject ×1