c# - 确保 Controller 有一个无参数的公共(public)构造函数

标签 c# .net asp.net-mvc asp.net-mvc-4

我收到这个错误

An error occurred when trying to create a controller of type 'AnalyticController'. Make sure that the controller has a parameterless public constructor.

代码可以在测试环境中运行,但不能在生产服务器上运行。

知道是什么导致了这个问题吗?

这是我的 Controller

public class AnalyticController : ApiController
{
    private AnalyticBLL analyticBLL = new AnalyticBLL();

    // POST api/status
    public void Post(AnalyticDTO analyticDTO)
    {
        if (!analyticBLL.Register(analyticDTO))
            helpers.BusinessLayer.CreateResponseException(analyticBLL.Errors);   
    }
}

最佳答案

这取决于您如何处理 DI(依赖注入(inject))。默认情况下, Controller 需要无参数构造函数,您必须使用 Unity 或 Ninject 之类的东西来处理 DI。我看到你是从 ApiController 继承的,所以如果你使用 Ninject 确保你下载 Ninject for Web API .如果你已经知道我刚才告诉你的一切,那么你需要提供更多信息。你的设置是什么?你用什么做DI?

关于c# - 确保 Controller 有一个无参数的公共(public)构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24014644/

相关文章:

c# - 我无法从 Controller 中的表单接收发布数据

c# - 根据几个系列的 X 值部分中的值缩放图表的 Y Axis

.net - 如何在没有互联网连接的情况下安装 NuGet 包?

asp.net-mvc - 如何将 NPM 包与现有 C#/MVC 项目一起使用以在 Azure 上进行 git 部署?

asp.net-mvc - 如何在发布表单时将默认值设置为空 EditorFor-field i .NET MVC

c# - 在事先不知道对象类型(类/表)的情况下查询 Entity Framework 实体

C#——TcpListener.Start() 导致 SocketException,消息为 "Only one usage of each socket address"

c# - 全名而不是 User.Identity.Name 中的域 ID

c# - 当引用的 .NET 依赖项版本不匹配时,如何解析引用?

.net - 如何加密字符串并获得等长的加密字符串?