ReferenceHandler.Preserve Properti

Definisi

Mendapatkan objek yang menunjukkan apakah properti metadata dihormati ketika objek dan array JSON dideserialisasi ke dalam jenis referensi, dan ditulis saat jenis referensi diserialisasikan. Ini diperlukan untuk membuat JSON round-trippable dari objek yang berisi siklus atau referensi duplikat.

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

Nilai Properti

Keterangan

  • Pada Serialisasi:

    • Saat menulis jenis referensi yang kompleks, serializer juga menulis properti metadata ($id, $values, dan $ref) di dalamnya.
    • JSON output akan berisi properti tambahan $id untuk setiap objek, dan untuk setiap jenis enumerable yang dipancarkan array JSON akan ditumpuk dalam objek JSON yang $id berisi properti dan $values .
    • ReferenceEquals(Object, Object) digunakan untuk menentukan apakah objek identik.
    • Ketika objek identik dengan objek yang diserialisasikan sebelumnya, penunjuk ($ref) ke pengidentifikasi ($id) objek tersebut ditulis sebagai gantinya.
    • Tidak ada properti metadata yang ditulis untuk jenis nilai.
  • Saat Deserialisasi:

    • Properti metadata dalam JSON yang digunakan untuk mempertahankan referensi dan siklus duplikat akan dihormati selama dibentuk dengan baik.*
    • Untuk objek JSON yang tidak berisi properti metadata apa pun, perilaku deserialisasi identik dengan tidak menggunakan Preserve.
    • Untuk jenis nilai, $id properti metadata diabaikan. JsonException dilemparkan jika $ref properti metadata ditemukan dalam objek JSON.
    • Untuk jenis nilai yang dapat dijumlahkan, $values properti metadata diabaikan.
  • Agar properti metadata dalam JSON dianggap terbentuk dengan baik, mereka harus mengikuti aturan ini:

    • Kecuali AllowOutOfOrderMetadataProperties diatur ke true, $id properti metadata harus menjadi properti pertama dalam objek JSON.
    • Objek JSON yang berisi $ref properti metadata tidak boleh berisi properti lain.
    • Nilai $ref properti metadata harus merujuk ke yang $id telah muncul sebelumnya di JSON.
    • Nilai $id properti metadata dan $ref harus berupa string JSON.
    • Untuk jenis yang dapat dijumlahkan, seperti List<T>, array JSON harus disarangkan dalam objek JSON yang $id berisi properti metadata dan $values , dalam urutan tersebut. (Namun, pesanan tidak penting jika AllowOutOfOrderMetadataProperties diatur ke true.)
    • Untuk jenis yang dapat dijumlahkan, $values properti metadata harus berupa array JSON.
    • Properti $values metadata hanya valid jika merujuk ke jenis yang dapat dihitung.

Jika JSON tidak terbentuk dengan baik, akan JsonException dilemparkan.

Berlaku untuk