Asp.net mvc 4 构造函数具有参数时无法调用web api

Asp.net mvc 4 构造函数具有参数时无法调用web api,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,我创建了一个web api控制器,我有存储库模式,所以我使用了Ninject。在构造函数中,我正在为接口创建对象。当我在普通的控制器类中使用它时,它工作得很好。但当我在api控制器构造函数中创建相同的函数时,它不起作用 代码: //Its not working IAdminRepository mAdminRepository; public AccountApiController(IAdminRepository pAdminRepository) { mAdminReposito

我创建了一个web api控制器,我有存储库模式,所以我使用了Ninject。在构造函数中,我正在为接口创建对象。当我在普通的控制器类中使用它时,它工作得很好。但当我在api控制器构造函数中创建相同的函数时,它不起作用

代码:

//Its not working
IAdminRepository mAdminRepository;
public AccountApiController(IAdminRepository pAdminRepository)
{
    mAdminRepository = pAdminRepository;
}

[HttpPost]
[ActionName("ValidateLogin")]
public LoginResponse ValidateLogin([FromBody] LoginInfo login)
{
    // some code hare 
}



//But its working
private AccountApiController()
{
}

它作为它的工作在构造函数中没有参数。再次告诉你,我在同一个正在工作的项目的普通控制器类中使用了相同的参数化构造函数。

你的构造函数实际上是私有的吗。发帖时输入错误。您是否为web api设置了DI?您说您使用的是Ninject,它适用于普通控制器,但WebAPI有不同的代码堆栈,还需要配置为使用该IoC容器。如Nkosi所说,您需要将默认的DependencyResolver或IHttpControllerActivator替换为使用特定IoC容器实现的。完成后,您可以注入dedencies。您还需要为api扫描不同于mvc控制器的基本类型controllers@Nkosi你能给我一个链接的例子吗。由于我是MVC新手,您的构造函数实际上是私有的吗。发帖时输入错误。您是否为web api设置了DI?您说您使用的是Ninject,它适用于普通控制器,但WebAPI有不同的代码堆栈,还需要配置为使用该IoC容器。如Nkosi所说,您需要将默认的DependencyResolver或IHttpControllerActivator替换为使用特定IoC容器实现的。完成后,您可以注入dedencies。您还需要为api扫描不同于mvc控制器的基本类型controllers@Nkosi你能给我一个链接的例子吗。因为我是MVC的新手。