Udostępnij za pośrednictwem


JsonExtensionDataAttribute Klasa

Definicja

Po umieszczeniu na właściwości typu IDictionary<TKey,TValue>wszelkie właściwości, które nie mają pasującego elementu członkowskiego, są dodawane do tego słownika podczas deserializacji i zapisywane podczas serializacji.

public ref class JsonExtensionDataAttribute sealed : System::Text::Json::Serialization::JsonAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false)]
public sealed class JsonExtensionDataAttribute : System.Text.Json.Serialization.JsonAttribute
[System.AttributeUsage(System.AttributeTargets.Property, AllowMultiple=false)]
public sealed class JsonExtensionDataAttribute : System.Text.Json.Serialization.JsonAttribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false)>]
type JsonExtensionDataAttribute = class
    inherit JsonAttribute
[<System.AttributeUsage(System.AttributeTargets.Property, AllowMultiple=false)>]
type JsonExtensionDataAttribute = class
    inherit JsonAttribute
Public NotInheritable Class JsonExtensionDataAttribute
Inherits JsonAttribute
Dziedziczenie
JsonExtensionDataAttribute
Atrybuty

Uwagi

Wartość słownika TKey musi mieć Stringwartość , a TValue musi mieć JsonElement wartość lub Object.

Podczas deserializacji w przypadku używania wartości ObjectJSON "null" wartość JSON jest traktowana jako null odwołanie do obiektu, a w przypadku używania parametru JsonElementelement "null" jest traktowany jako element JsonElement z ustawioną wartością ValueKindJsonValueKind.Null.

Podczas serializacji nazwa właściwości danych rozszerzenia nie jest uwzględniana w formacie JSON; dane zawarte w danych rozszerzenia są serializowane jako właściwości obiektu JSON.

Jeśli w typie jest więcej niż jedna właściwość z tym atrybutem danych rozszerzenia lub jeśli sama właściwość nie jest poprawnym IDictionary<TKey,TValue> typem, InvalidOperationException element jest zgłaszany podczas pierwszej serializacji lub deserializacji tego typu.

Aby uzyskać więcej informacji, zobacz How to handle overflow JSON with System.Text.Json (Jak obsługiwać przepełnienie kodu JSON za pomocą pliku System.Text.Json).

Konstruktory

JsonExtensionDataAttribute()

Inicjuje nowe wystąpienie klasy JsonExtensionDataAttribute.

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy