Data.DBXJSONReflect.TConverter

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

System.TObjectTConverter

Delphi

TConverter<TSerial> = class abstract

C++

template<typename TSerial> class PASCALIMPLEMENTATION TConverter__1 : public System::TObject

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
class public
Data.DBXJSONReflect.pas
Data.DBXJSONReflect.hpp
Data.DBXJSONReflect Data.DBXJSONReflect

Beschreibung

Repräsentiert die Basiskonverterklasse.

Alle Serialisierungsklassen müssen von der Klasse TConverter abstammen. TConverter stellt die von einer Marshaller-Klasse zur Serialisierung eines Benutzerobjekts verwendeten API-Ereignisse bereit.

Konverter und Reverter können für einen Typ und ein Feld oder für einen Typ registriert werden. Alle deklarierten Felder dieses Typs werden von dem bereitgestellten Benutzer-Konverter/Reverter verarbeitet. Ein bei einem Feld registrierter Konverter/Reverter hat Vorrang vor einem Typkonverter/Reverter.

Ein Feldkonverter kann einen Feldwert in einen String, ein Objekt, eine String-Liste oder eine Objektliste umwandeln. Diese umgewandelten Werte werden als Argumente an den entsprechenden Reverter übergeben, um den Feldwert neu zu bilden.

Ein Typkonverter kann einen Wert in einen String, ein Objekt, eine String-Liste oder eine Objektliste umwandeln. Diese werden als Argumente an den Typ-Reverter übergeben, um die ursprüngliche Typinstanz neu zu bilden.

Ein TStringList-Feld kann beispielsweise von einem Konverter in ein String-Array umgewandelt werden, und ein Reverter kann anhand der String-Liste eine Instanz von TStringList erstellen und füllen. Ein benutzerdefinierter Konverter/Reverter sollte über diesen Komplexitätsgrad verfügen.

In vorbestimmten Situationen werden Ereignisse ausgegeben. Die folgende Tabelle enthält die Liste der Situationen, die während des Marshalling auftreten können.



Situation Ereignis

Ein neues Objekt wird gefunden.

OnTypeStart

Ein bereits besuchtes Objekt wird gefunden.

OnRefType

Ein neuer Objektinhalt wurde erneut besucht.

OnTypeEnd

Ein neues Feld wird gefunden.

OnFieldStart

Ein neues Feld wird besucht.

OnFieldEnd

Ein Stringwert wird gefunden.

OnString

Ein numerischer Wert wird gefunden.

OnNumber

Ein Nil-Wert wird gefunden.

OnNull

Ein boolescher Wert wird gefunden.

OnBoolean

Ein Listenwert wird gefunden.

OnListStart

Die Verarbeitung einer Liste ist beendet.

OnListEnd



Die Ereignisse werden von einer TConverter-Instanz empfangen. Abhängig von der Struktur des Benutzerobjekts sind diese teilweise verdeckt. Die TConverter-Instanz erstellt auf der Grundlage der Ereignisse und ihrer Argumente ein äquivalentes Abbild des Benutzerobjekts.

Anhand des vom Konverter erstellten Objektabbilds kann das ursprüngliche Benutzerobjekt unter Verwendung der von einem Unmarshaller gesteuerten Reverter-Ereignisse neu gebildet werden.

Anmerkung:  Für die folgenden Felder ist bereits eine integrierte Konvertierung/Reversion vorhanden: Integer, String, Char, Aufzählung, Float, Objekt. Bei den folgenden Typen werden die Feldwerte ignoriert, und es wird eine Benutzerkonvertierung erwartet: Menge, Methode, Variante, Interface, Zeiger, dynArray, classRef, Array.

Siehe auch