ReferenceHandler.Preserve Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
,$values
a$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 psaní složitých referenčních typů serializátor také zapisuje 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.
- Vlastnost
Pokud json není ve správném formátu, JsonException vyvolá se objekt .