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,$valuesa$ref) v nich. - Výstupní JSON bude obsahovat další
$idvlastnost pro každý objekt a pro každý typ výčtu se vygenerované pole JSON vnoří do objektu JSON obsahujícího$idvlastnost 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
$idvlastnost metadat ignoruje. Vyvolá JsonException se, pokud se v objektu$refJSON najde vlastnost metadat. - U výčtu hodnotových typů
$valuesje vlastnost metadat ignorována.
Aby se vlastnosti metadat v json považovaly za dobře vytvořené, musí se řídit těmito pravidly:
- Vlastnost
$idmetadat musí být první vlastností v objektu JSON. - Objekt JSON, který obsahuje
$refvlastnost metadat, nesmí obsahovat žádné jiné vlastnosti. - Hodnota
$refvlastnosti metadat musí odkazovat na vlastnost$id, která se objevila dříve ve formátu JSON. - Hodnota
$idvlastností metadat a$refmusí 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
$idvlastnost metadat a$valuesv tomto pořadí. - U výčtových typů
$valuesmusí být vlastností metadat pole JSON. - Vlastnost
$valuesmetadat je platná pouze při odkazech na typy výčtu.
- Vlastnost
Pokud json není ve správném formátu, JsonException vyvolá se objekt .