我最近将我的API项目更新为ASP.NET Core3。此后,[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中有效),因此要在我正在使用[JsonIgnore]
的.NET Standard项目内的模型中使用Newtonsoft.Json
。
答案 0 :(得分:2)
[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的应用程序。
答案 1 :(得分:1)
对于您的.Net Standard项目,请从nuget中获取System.Text.Json包
https://www.nuget.org/packages/System.Text.Json
因此您可以使用System.Text.Json.Serialization.JsonIgnoreAttribute代替Newtonsoft.Json.JsonIgnoreAttribute。