.NET Core Angular项目控制器的单参数构造函数导致错误

时间:2018-11-05 16:40:34

标签: angular .net-core angular-cli

我按照VS2017中的向导创建了一个新的.Net-Core Angular项目,然后在控制器中添加了一个具有单个参数的新构造函数,如下所示:

[Route("api/[controller]")]
public class SampleDataController : Controller
{
    private readonly string name;

    public SampleDataController(string something)
    {
        name = something;
    }

    public SampleDataController()
    {

    }

    //Some other actions
}

我对此代码块进行了一些测试:

  1. 只有默认的构造函数时,它可以正常工作。以及未使用的私有字符串。
  2. 出现单参数构造函数时,无论有没有默认构造函数,它都不再起作用。

注意:好,如果您在VS2017中调试新创建的角度项目时遇到问题,请查看this link

1 个答案:

答案 0 :(得分:1)

当删除默认构造函数时,运行时将尝试通过single-param-constructor创建实例。然后,最有可能的是,运行时不知道如何解析字符串依赖关系以创建控制器。

因此,在Startup.cs的ConfigureServices方法中,启用将控制器注册为服务,然后注册依赖项

services.AddMvc().AddControllersAsServices();
services.AddTransient(ctx => new SampleDataController("your string value"));
相关问题