Sdílet prostřednictvím


ReferenceHandler.Preserve Vlastnost

Definice

Získá objekt, který označuje, zda vlastnosti metadat jsou respektovány, když json objekty a pole jsou deserializovány do referenčních typů a zapsány při serializaci typů odkazů. To je nezbytné k vytvoření formátu JSON s možností odezvy z objektů, které obsahují cykly nebo duplicitní odkazy.

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

Hodnota vlastnosti

Poznámky

  • Při serializaci:

    • Při psaní složitých referenčních typů serializátor také zapisuje vlastnosti metadat ($id, $valuesa $ref) v nich.
    • Výstupní JSON bude obsahovat další $id vlastnost pro každý objekt a pro každý typ výčtu se vygenerované pole JSON vnoří do objektu JSON obsahujícího $id vlastnost a $values .
    • ReferenceEquals(Object, Object) se používá k určení, zda jsou objekty identické.
    • Pokud je objekt identický s dříve serializovaným objektem, je místo toho zapsán ukazatel ($ref) na identifikátor ($id) takového objektu.
    • Pro typy hodnot nejsou zapsány žádné vlastnosti metadat.
  • Při deserializaci:

    • Vlastnosti metadat ve formátu JSON, které se používají k zachování duplicitních odkazů a cyklů, budou dodrženy, pokud budou správně vytvořené.*
    • U objektů JSON, které neobsahují žádné vlastnosti metadat, je chování deserializace stejné jako nepoužilo Preserve.
    • U hodnotových typů se $id vlastnost metadat ignoruje. Vyvolá JsonException se, pokud se v objektu $ref JSON najde vlastnost metadat.
    • U výčtu hodnotových typů $values je vlastnost metadat ignorována.
  • Aby se vlastnosti metadat v json považovaly za dobře vytvořené, musí se řídit těmito pravidly:

    • Vlastnost $id metadat musí být první vlastností v objektu JSON.
    • Objekt JSON, který obsahuje $ref vlastnost metadat, nesmí obsahovat žádné jiné vlastnosti.
    • Hodnota $ref vlastnosti metadat musí odkazovat na vlastnost $id , která se objevila dříve ve formátu JSON.
    • Hodnota $id vlastností metadat a $ref musí být řetězec JSON.
    • U výčtových typů, jako List<T>je , musí být pole JSON vnořené do objektu JSON obsahujícího $id vlastnost metadat a $values v tomto pořadí.
    • U výčtových typů $values musí být vlastností metadat pole JSON.
    • Vlastnost $values metadat je platná pouze při odkazech na typy výčtu.

Pokud json není ve správném formátu, JsonException vyvolá se objekt .

Platí pro