Asp.Net Core Web API - 错误 CS0747 初始化程序成员声明符无效

Asp.Net Core Web API - Error CS0747 Invalid initializer member declarator

我在 ASP.NET Core Web 中有这段代码 API:

DTO:

public class AuthRequest
{
    public string Email { get; set; }
    public string Password { get; set; }
}

public class AuthResponse
{
    public string Id { get; set; }
    public string UserName { get; set; }
    public string Email { get; set; }
    public string Token { get; set; }
}

服务:

public interface IAuthService
{
    Task<AuthResponse> Login(AuthRequest request);
}

public async Task<AuthResponse> Login(AuthRequest request)
{
    var user = await _userManager.FindByEmailAsync(request.Email);

    if (user == null)
    {
        throw new Exception($"User with {request.Email} not found.");
    }

    var result = await _signInManager.PasswordSignInAsync(user.UserName, request.Password, false, lockoutOnFailure: false);

    if (!result.Succeeded)
    {
        throw new Exception($"Credentials for '{request.Email} aren't valid'.");
    }

    JwtSecurityToken jwtSecurityToken = await GenerateToken(user);
    var roles = await _userManager.GetRolesAsync(user);

    AuthResponse response = new AuthResponse
    {
        Id = user.Id,
        Token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken),
        Email = user.Email,
        UserName = user.UserName,
        roles,
    };

    return response;
}

根据上面的代码,我想在 AuthResponse 中包含登录用户的角色。所以我补充说,roles

但是我得到了这个错误:

Error CS0747 Invalid initializer member declarator

角色突出显示。

我该如何解决这个问题?

谢谢

注意这个 属性 初始化的方式:

roles,

与其他不同之处:

Id = user.Id,
Token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken),
Email = user.Email,
UserName = user.UserName,

您需要指定正在设置哪个属性。例如,是否有 Roles 属性 (匹配类型)?如果是这样,它将是这样的:

Roles = roles,

基本上,无论您要在结果对象中初始化什么 属性,您都需要在其初始化中指明 属性 的名称。