ReferenceHandler.Preserve Propriedade

Definição

Obtém um objeto que indica se as propriedades de metadados são honradas quando objetos JSON e matrizes são desserializados em tipos de referência e gravados quando os tipos de referência são serializados. Isso é necessário para criar json trippable de ida e volta a partir de objetos que contêm ciclos ou referências duplicadas.

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

Valor da propriedade

ReferenceHandler

Comentários

  • Em Serializar:

    • Ao escrever tipos de referência complexos, o serializador também grava propriedades de metadados ($ide $values``$ref) dentro deles.
    • O JSON de saída conterá uma propriedade extra $id para cada objeto e, para cada tipo enumerável, a matriz JSON emitida será aninhada dentro de um objeto JSON que contém um e $values uma $id propriedade.
    • ReferenceEquals(Object, Object) é usado para determinar se os objetos são idênticos.
    • Quando um objeto é idêntico a um serializado anteriormente, um ponteiro ($ref) para o identificador ($id) desse objeto é escrito em vez disso.
    • Nenhuma propriedade de metadados é gravada para tipos de valor.
  • Ao desserializar:

    • As propriedades de metadados dentro do JSON que são usadas para preservar referências e ciclos duplicados serão honradas desde que estejam bem formadas.*
    • Para objetos JSON que não contêm nenhuma propriedade de metadados, o comportamento de desserialização é idêntico a não usar Preserve.
    • Para tipos de valor, a $id propriedade de metadados é ignorada. Um JsonException será gerado se uma $ref propriedade de metadados for encontrada dentro do objeto JSON.
    • Para tipos de valor enumeráveis, a $values propriedade de metadados é ignorada.
  • Para que as propriedades de metadados dentro do JSON sejam consideradas bem formadas, elas devem seguir estas regras:

    • A $id propriedade de metadados deve ser a primeira propriedade no objeto JSON.
    • Um objeto JSON que contém uma $ref propriedade de metadados não deve conter nenhuma outra propriedade.
    • O valor da $ref propriedade de metadados deve se referir a um $id que tenha sido exibido anteriormente no JSON.
    • O valor das $id propriedades e $ref metadados deve ser uma cadeia de caracteres JSON.
    • Para tipos enumeráveis, como List<T>, a matriz JSON deve ser aninhada dentro de um objeto JSON que contém uma $id propriedade e $values metadados, nessa ordem.
    • Para tipos enumeráveis, a $values propriedade de metadados deve ser uma matriz JSON.
    • A $values propriedade de metadados só é válida ao se referir a tipos enumeráveis.

Se o JSON não estiver bem formado, um JsonException será lançado.

Aplica-se a