Конструктор с Внедрением Зависимости вызывает ошибку http 500 в основном приложении реагировать на asp.net - PullRequest
0 голосов
/ 02 мая 2019

Следующие контроллеры обрабатывают такие операции, как регистрация. Однако, когда я выполняю вызов метода Register в контроллере с помощью axios, я получил следующую ошибку.

Не удалось загрузить ресурс: сервер ответил со статусом 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
    }
}

Вот интерфейс IUSerServices:

public interface IUserService
{
    ApplicationUser Authenticate(string username, string password);

}

public class UserService : IUserService
{
    private myDbContext _context;

    public UserService(myDbContext context)
    {
        _context = context;
    }

    public ApplicationUser Authenticate(string username, string password)
    {
        //implementation details
    }
}

ДИ зарегистрирован в Startup.cs

services.AddScoped<IUserService, UserService>();
services.AddScoped<myDbContext>();

1 Ответ

1 голос
/ 02 мая 2019

IMapper - это интерфейс из библиотеки AutoMapper.

Вам необходимо добавить пакет AutoMapper.Extensions.Microsoft.DependencyInjection и позвонить

services.AddAutoMapper();
...