gpt4 book ai didi

c# - JsonIgnore 属性在 ASP.NET Core 3 中保持序列化属性

转载 作者:行者123 更新时间:2023-11-30 12:19:25 28 4
gpt4 key购买 nike

我最近将我的 API 项目更新为 ASP.NET Core 3。从那时起,[JsonIgnore] 属性不起作用:

public class Diagnostico
{
[JsonIgnore]
public int TipoDiagnostico { get; set; }

[JsonIgnore]
public int Orden { get; set; }

[JsonIgnore]
public DateTime? FechaInicio { get; set; }

public string TipoCodificacion { get; set; }

public string Codigo { get; set; }

public string Descripcion { get; set; }
}

正在序列化类的所有属性。 API 端点在 .NET Core 3 中,但所有逻辑都在 .NET Standard 2.1 中。我意识到序列化程序已从 Newtonsoft.Json 更改为System.Text.Json。此包在 .NET Standard 2.1 中不可用(它仅适用于 .NET Core)因此要在 .NET Standard 项目中的模型中使用 [JsonIgnore] 我正在使用 Newtonsoft.Json .

最佳答案

[JsonIgnore] 是一个 JSON.NET 属性,不会被新的 System.Text.Json 序列化程序使用。

由于您的应用程序是 ASP.NET Core 3.0 System.Text.Json 将默认使用。如果你想继续使用 JSON.NET 注释,你必须在 ASP.NET Core 3 中使用 JSON.NET

就像将 .AddNewtonsoftJson() 添加到您的 MVC 或 WebApi Builder 一样简单

services.AddMvc()
.AddNewtonsoftJson();

services.AddControllers()
.AddNewtonsoftJson();

用于类似 WebAPI 的应用程序。

关于c# - JsonIgnore 属性在 ASP.NET Core 3 中保持序列化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58499339/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com