我按照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
}
我对此代码块进行了一些测试:
注意:好,如果您在VS2017中调试新创建的角度项目时遇到问题,请查看this link
答案 0 :(得分:1)
当删除默认构造函数时,运行时将尝试通过single-param-constructor创建实例。然后,最有可能的是,运行时不知道如何解析字符串依赖关系以创建控制器。
因此,在Startup.cs的ConfigureServices方法中,启用将控制器注册为服务,然后注册依赖项
services.AddMvc().AddControllersAsServices();
services.AddTransient(ctx => new SampleDataController("your string value"));