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,
基本上,无论您要在结果对象中初始化什么 属性,您都需要在其初始化中指明 属性 的名称。
我在 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,
基本上,无论您要在结果对象中初始化什么 属性,您都需要在其初始化中指明 属性 的名称。