web-dev-qa-db-fra.com

L'attribut JsonIgnore conserve la sérialisation des propriétés dans ASP.NET Core 3

J'ai récemment mis à jour mon projet d'API vers ASP.NET Core 3. Depuis lors, [JsonIgnore] les attributs ne fonctionnent pas:

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; }
}

Toutes les propriétés des classes sont en cours de sérialisation. Les points de terminaison API sont dans .NET Core 3, mais toute la logique est dans .NET Standard 2.1. J'ai réalisé que le sérialiseur est passé de Newtonsoft.Json à System.Text.Json. Ce package n'est pas disponible dans .NET Standard 2.1 (il ne fonctionne que dans .NET Core), donc utilisez [JsonIgnore] dans les modèles dans les projets .NET Standard que j'utilise Newtonsoft.Json.

5
mattinsalto

Pour votre projet .Net Standard, récupérez le package System.Text.Json de nuget

https://www.nuget.org/packages/System.Text.Json

vous pouvez donc utiliser System.Text.Json.Serialization.JsonIgnoreAttribute au lieu de Newtonsoft.Json.JsonIgnoreAttribute.

0
Laksmono