当我尝试使用ASP.NET Core Newsoft JSON.NET序列化某些域对象时,它会抛出异常,因为它正在检测自引用循环.
在ASP.NET 4中,我们以这种方式全局修复它: JSON.NET错误检测到类型的自引用循环
我们如何在ASP.NET Core中解决这个问题?
我创建了一个团队web api控制器,并尝试调用GET方法来获取数据库中所有团队的json结果.但是当我打电话时,我只让第一支队伍回到了json,但是当我在return语句上设置一个断点时,它拥有所有254支球队以及所有比赛.
这些是我正在处理的两个模型:
public class Team
{
public string Id { get; set; }
public string Name { get; set; }
public string Icon { get; set; }
public string Mascot { get; set; }
public string Conference { get; set; }
public int NationalRank { get; set; }
public List<Game> Games { get; set; }
}
public class Game
{
public string Id { get; set; }
public string Opponent { get; set; }
public string OpponentLogo { get; …Run Code Online (Sandbox Code Playgroud) 我有一个带有控制器的 ASP.NET Core 2.2 项目,其 GET 方法返回一个包含System.IO.FileInfo属性的对象。当我调用 API 时(例如在 Web 浏览器中),它返回一个不完整的 JSON 字符串。
这是实例正在序列化的类:
public class Thing
{
public string Name { get; set; }
public FileInfo File { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是控制器、程序和启动类:
[Route("Test/Home")]
[ApiController]
public class HomeController : Controller
{
[HttpGet]
public async Task<ActionResult<Thing>> GetThing()
{
return new Thing()
{
Name = "First thing",
File = new FileInfo("c:\file.txt")
};
}
}
public class Program
{
public static async Task Main(string[] args)
=> await CreateWebHostBuilder(args).Build().RunAsync();
public static …Run Code Online (Sandbox Code Playgroud)