Partager via


ReferenceHandler.Preserve Propriété

Définition

Obtient un objet qui indique si les propriétés de métadonnées sont respectées lorsque les objets et tableaux JSON sont désérialisés en types de référence et écrits lorsque les types de référence sont sérialisés. Ceci est nécessaire pour créer un JSON avec aller-retour à partir d’objets qui contiennent des cycles ou des références en double.

public:
 static property System::Text::Json::Serialization::ReferenceHandler ^ Preserve { System::Text::Json::Serialization::ReferenceHandler ^ get(); };
public static System.Text.Json.Serialization.ReferenceHandler Preserve { get; }
static member Preserve : System.Text.Json.Serialization.ReferenceHandler
Public Shared ReadOnly Property Preserve As ReferenceHandler

Valeur de propriété

Remarques

  • Lors de la sérialisation :

    • Lors de l’écriture de types de référence complexes, le sérialiseur écrit également des propriétés de métadonnées ($id, $values, et $ref) dans ceux-ci.
    • Le json de sortie contient une propriété supplémentaire $id pour chaque objet, et pour chaque type énumérable, le tableau JSON émis sera imbriqué dans un objet JSON contenant une $id propriété et $values .
    • ReferenceEquals(Object, Object) est utilisé pour déterminer si les objets sont identiques.
    • Lorsqu’un objet est identique à un objet sérialisé précédemment, un pointeur ($ref) vers l’identificateur ($id) de cet objet est écrit à la place.
    • Aucune propriété de métadonnées n’est écrite pour les types valeur.
  • Sur Désérialize :

    • Les propriétés de métadonnées au sein du JSON qui sont utilisées pour conserver les références et les cycles dupliqués seront respectées tant qu’elles sont bien formées.*
    • Pour les objets JSON qui ne contiennent aucune propriété de métadonnées, le comportement de désérialisation est identique à celui de ne pas utiliser Preserve.
    • Pour les types valeur, la $id propriété de métadonnées est ignorée. Un JsonException est levée si une $ref propriété de métadonnées est trouvée dans l’objet JSON.
    • Pour les types de valeurs énumérables, la $values propriété de métadonnées est ignorée.
  • Pour que les propriétés de métadonnées au sein du JSON soient considérées comme étant bien formées, elles doivent suivre les règles suivantes :

    • La $id propriété de métadonnées doit être la première propriété de l’objet JSON.
    • Un objet JSON qui contient une $ref propriété de métadonnées ne doit pas contenir d’autres propriétés.
    • La valeur de la $ref propriété de métadonnées doit faire référence à un $id qui est apparu précédemment dans le JSON.
    • La valeur des propriétés de $id métadonnées et $ref doit être une chaîne JSON.
    • Pour les types énumérables, tels que List<T>, le tableau JSON doit être imbriqué dans un objet JSON contenant une $id propriété de métadonnées et $values , dans cet ordre.
    • Pour les types énumérables, la $values propriété de métadonnées doit être un tableau JSON.
    • La $values propriété de métadonnées est valide uniquement lorsque vous faites référence à des types énumérables.

Si le JSON n’est pas correctement formé, un JsonException est levée.

S’applique à