Asp.net core ASP.NET核心依赖项注入:NullReferenceException尝试访问其接口中定义的具体类成员

Asp.net core ASP.NET核心依赖项注入:NullReferenceException尝试访问其接口中定义的具体类成员,asp.net-core,dependency-injection,controller,asp.net-core-webapi,Asp.net Core,Dependency Injection,Controller,Asp.net Core Webapi,这是越来越奇怪,因为我已经做了几次没有问题。 我使用ASP.NETCore3.1作为记录。 问题是我在ConfigureServices启动方法中注册了一个具体类型及其相关接口: public void ConfigureServices(IServiceCollection services) { services.AddDbContext<MyDbContext>(options => options.UseSqlServer(

这是越来越奇怪,因为我已经做了几次没有问题。 我使用ASP.NETCore3.1作为记录。 问题是我在ConfigureServices启动方法中注册了一个具体类型及其相关接口:

public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<MyDbContext>(options =>
        options.UseSqlServer(
             Configuration.GetConnectionString("MyDatabase")
            ));

        ProfileManager.RegisterMappingService(services);

        services.AddScoped<IUserWorkerService, UserWorkerService>();

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
        services.AddControllers();
这是接口:

    public interface IUserWorkerService
{
    public UserDto Authenticate(string userName, string password);
}
这是混凝土类:

public class UserWorkerService : IUserWorkerService
{
    private readonly MyDbContext dbContext;
    private readonly IMapper mapper;

    public UserWorkerService(MyDbContext dbContext, IMapper mapper)
    {
        this.dbContext = dbContext;
        this.mapper = mapper;
    }

    public UserDto Authenticate(string userName, string password)
    {
*blah blah*
    }
}
当我发出POST请求时,我正确地登录到控制器的ActionResult上,但是UserWorkerService实例不包含在其接口中定义的成员,只包含注入的成员IMapper和MyDbContext。

因此,当代码到达UsersController中的Authenticate方法调用时,调试器抛出NullReferenceException。


我在这里遗漏了什么?

抛出的错误到底是哪一行?在服务中,或直接在控制器操作中。我将添加一个屏幕快照,您确定用户名和密码不为空吗?您的参数正在读取[FromBody]还是FromQueryString,这将影响这些参数的绑定parameters@DioBrando如果内容来自正文,则使用单个模型和适当的属性。那么,您是否确认问题在于参数为空?
public class UserWorkerService : IUserWorkerService
{
    private readonly MyDbContext dbContext;
    private readonly IMapper mapper;

    public UserWorkerService(MyDbContext dbContext, IMapper mapper)
    {
        this.dbContext = dbContext;
        this.mapper = mapper;
    }

    public UserDto Authenticate(string userName, string password)
    {
*blah blah*
    }
}