web-dev-qa-db-ja.com

JsonIgnore属性がASP.NET Core 3のプロパティをシリアル化し続ける

最近、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でのみ機能します)。したがって、[JsonIgnore]使用している.NET標準プロジェクト内のモデルNewtonsoft.Json

5
mattinsalto

.Net Standardプロジェクトの場合、nugetからSystem.Text.Jsonパッケージを取得します。

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

そのため、Newtonsoft.Json.JsonIgnoreAttributeの代わりにSystem.Text.Json.Serialization.JsonIgnoreAttributeを使用できます。

0
Laksmono