C# 带有依赖项注入的构造函数在react asp.net核心应用程序中导致http 500错误
以下控制器句柄使用注册等操作。但是,当我使用axios调用控制器中的C# 带有依赖项注入的构造函数在react asp.net核心应用程序中导致http 500错误,c#,asp.net,asp.net-web-api,dependency-injection,controller,C#,Asp.net,Asp.net Web Api,Dependency Injection,Controller,以下控制器句柄使用注册等操作。但是,当我使用axios调用控制器中的Register方法时,我收到了以下错误 加载资源失败:服务器响应状态为500() 但是,如果我在构造函数中对代码进行注释,调用就会成功。我不明白为什么构造器会产生这个问题。有什么建议吗 public class ApplicationUserController : ControllerBase { private IUserService _userService; private IMapper _mapp
Register
方法时,我收到了以下错误
加载资源失败:服务器响应状态为500()
但是,如果我在构造函数中对代码进行注释,调用就会成功。我不明白为什么构造器会产生这个问题。有什么建议吗
public class ApplicationUserController : ControllerBase
{
private IUserService _userService;
private IMapper _mapper;
private readonly AppSettings _appSettings;
public ApplicationUserController(
IUserService userService,
IMapper mapper,
IOptions<AppSettings> appSettings
)
{
_userService = userService;
_mapper = mapper;
_appSettings = appSettings.Value;
}
[AllowAnonymous]
[HttpPost]
[Route("api/ApplicationUser/Register")]
public IActionResult Register([FromBody]ApplicationUserDto userDto)
{
//implementation details
}
}
DI注册在Startup.cs
services.AddScoped<IUserService, UserService>();
services.AddScoped<myDbContext>();
services.addScope();
services.addScope();
IMapper是来自AutoMapper库的接口
您需要添加包AutoMapper.Extensions.Microsoft.DependencyInjection
并调用
services.AddAutoMapper();
您是否也向DI注册了DB上下文,因为您的UserService依赖于DbContext,所以在解析UserService时它将构造它。@Jinish感谢您的回复!您的意思是添加
services.addScope()代码>?我只是添加并尝试了一下。我仍然遇到同样的错误。注册dbcontext的方法有点不同。如果不看一下注册了所有依赖项的整个Startup类,那么就只能猜测可能的错误。但是,请查看此链接:[@Jinish我按照此处的说明操作:。仍然是相同的错误。我将继续处理它。有了这些更新,现在问题出在IMapper
。如果我对它进行注释,它可以正常工作。我添加了services.AddScoped();
,但仍然收到相同的错误。有任何想法@Jinish吗?
services.AddAutoMapper();