我正在跟随一个关于.NET 6的简单教程,它应该非常简单,但显然我遇到了异常。示例代码如下:
public async Task<ServiceResponse<List<GetCharacterDto>>> GetAllCharacters()
{
var response = new ServiceResponse<List<GetCharacterDto>>();
var dbCharacters = await _context.Characters.ToListAsync();
response.Data = dbCharacters.Select(c => _mapper.Map<GetCharacterDto>(c)).ToList();
return response;
}
GetCharacterDto 中的代码如下:
public class GetCharacterDto
{
public int Id { get; set; }
public string Name { get; set; } = "Frodo";
public int HitPoints { get; set; } = 100;
public int Strength { get; set; } = 10;
public int Defense { get; set; } = 10;
public int Intelligence { get; set; } = 10;
public RpgClass Class { get; set; } = RpgClass.Knight;
}
Rpg类:
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum RpgClass
{
Knight = 1,
Mage = 2,
Cleric = 3
}
异常
System.NotSupportedException: 不支持对 'System.Action' 实例进行序列化和反序列化。路径:$.MoveNextAction。 在此处抛出。
var dbCharacters = await _context.Characters.ToListAsync();
如果我同步调用它。
_context.Characters.ToList();
它可以正常工作,但无法异步工作。
我已经安装了.NET 5 SDK和.NET 6 SDK,如果这可能是一个潜在的问题。
results = GetAllCharacters(); return results;
这段代码。它可以在同步模式下工作,但在异步模式下会出现这些症状。 - Selvin