いくつかの条件に基づいて、いくつかのオブジェクトがシリアル化されないようにする方法を見つけようとしています。私が見つけることができるのは、ShouldSerialize* メソッドを使用してオブジェクトのプロパティを無視する方法だけですが、オブジェクト全体を無視する方法はわかりません。
これが私の状況を説明する例です。会社は複数の従業員を持つことができ、従業員は現在または非現在のいずれかです。
Public Class Company
Public Property Name As String
Public Property Employees As List(Of Employee)
End Class
Public Class Employee
Public Property FirstName As List(Of Name)
Public Property LastName As List(Of Name)
Public Property Current As Boolean
End Class
現在の従業員以外がjsonにシリアル化されるのを無視/除外できるようにしたいと考えています。
今考えられる唯一の方法は、現在の従業員と非現在の従業員を 2 つのプロパティに分けて、非現在の従業員に を使用できるようにすること<JsonIgnoreAttribute()>
です。
そのような:
Public Class Company
Public Property Name As String
Public Property CurrentEmployees As List(Of Employee)
<JsonIgnoreAttribute()>
Public Property PastEmployees As List(Of Employee)
End Class
Public Class Employee
Public Property FirstName As List(Of Name)
Public Property LastName As List(Of Name)
Public Property Current As Boolean
End Class
ただし、実際の状況にはこれらのものがいくつかあるため、これを回避しようとしているため、すべてのリストを2つに分割して大規模なコード変更が必要になることは望ましくありません. jsonのシリアライズ側だけでできればいいのですが。
どんな助けでも感謝します。ありがとう!