Freigeben über


JavaScriptSerializer.ConvertToType Methode

Definition

Überlädt

ConvertToType(Object, Type)

Konvertiert das angegebene Objekt in den angegebenen Typ.

ConvertToType<T>(Object)

Konvertiert das angegebene Objekt in den angegebenen Typ.

ConvertToType(Object, Type)

Konvertiert das angegebene Objekt in den angegebenen Typ.

public:
 System::Object ^ ConvertToType(System::Object ^ obj, Type ^ targetType);
public object ConvertToType (object obj, Type targetType);
member this.ConvertToType : obj * Type -> obj
Public Function ConvertToType (obj As Object, targetType As Type) As Object

Parameter

obj
Object

Das zu konvertierende Objekt.

targetType
Type

Der Typ, in den das Objekt konvertiert werden soll.

Gibt zurück

Object

Die serialisierte JSON-Zeichenfolge.

Ausnahmen

Die resultierende JSON-formatierte Zeichenfolge überschreitet den Wert von MaxJsonLength.

- oder - obj enthält einen Zirkelverweis. Bei einem zirkulären Verweis enthält das untergeordnete Objekt einen Verweis auf das übergeordnete Objekt und umgekehrt.

Die von RecursionLimit definierte Rekursionsgrenze wurde überschritten.

Hinweise

Wenn die JavaScriptSerializer Instanz einen Typ serialisiert, für den ein benutzerdefinierter Konverter registriert ist, ruft der Serializer die Serialize Methode auf, um das Wörterbuch mit Namen/Wertpaaren abzurufen, die in eine JSON-formatierte Zeichenfolge konvertiert werden.

Die Serialize Methode kann auch Ausnahmen auslösen, wenn das Objektdiagramm zu komplex ist oder registrierte Instanzen von JavaScriptConverter Konverter rekursion verursacht haben.

Gilt für

ConvertToType<T>(Object)

Konvertiert das angegebene Objekt in den angegebenen Typ.

public:
generic <typename T>
 T ConvertToType(System::Object ^ obj);
public T ConvertToType<T> (object obj);
member this.ConvertToType : obj -> 'T
Public Function ConvertToType(Of T) (obj As Object) As T

Typparameter

T

Der Typ, in den obj konvertiert wird.

Parameter

obj
Object

Das zu konvertierende Objekt.

Gibt zurück

T

Das Objekt, das in den Zieltyp konvertiert wurde.

Ausnahmen

obj (oder ein geschachtelter Member von obj) enthält eine "__type"-Eigenschaft, die einen benutzerdefinierten Typ angibt, jedoch kann der dem Serialisierungsprogramm zugeordnete Typresolver keinen zugehörigen verwalteten Typ finden.

- oder - obj (oder ein geschachtelter Member von obj) enthält eine "__type"-Eigenschaft, die einen benutzerdefinierten Typ angibt, jedoch kann das Deserialisierungsergebnis für die entsprechende JSON-Zeichenfolge nicht dem zugehörigen Zieltyp zugewiesen werden.

- oder - obj (oder ein geschachtelter Member von obj) enthält eine "__type"-Eigenschaft, die Object oder einen nicht instanziierbaren Typ angibt (z. B. einen abstrakten Typ oder eine Schnittstelle).

- oder - Es wurde versucht, obj in einen arrayähnlichen verwalteten Typ zu konvertieren, der als Deserialisierungsziel nicht unterstützt wird.

- oder - Es ist nicht möglich, obj in T zu konvertieren.

obj ist ein Wörterbuchtyp, und es wurde ein Schlüsselwert gefunden, der nicht aus einer Zeichenfolge besteht.

- oder - obj enthält Memberdefinitionen, die für den Typ T nicht verfügbar sind.

Beispiele

Das folgende Beispiel zeigt, wie Sie mithilfe der ConvertToType Methode ein ListItem Objekt aus einem Wert im Wörterbuch abrufen, das an den Konverter übergeben wird. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die JavaScriptSerializer-Klasse bereitgestellt wird.

ArrayList itemsList = (ArrayList)dictionary["List"];
for (int i=0; i<itemsList.Count; i++)
    list.Add(serializer.ConvertToType<ListItem>(itemsList[i]));
Dim itemsList As ArrayList = CType(dictionary("List"), ArrayList)
Dim i As Integer
For i = 0 To itemsList.Count - 1
    list.Add(serializer.ConvertToType(Of ListItem)(itemsList(i)))
Next i

Hinweise

Die ConvertToType Methode versucht, die Objektinstanz zu konvertieren, die durch obj eine Instanz vom Typ Tdargestellt wird. Während dieser Konvertierung gibt es keine Garantie dafür, dass die Objektbezugsgleichbehandlung beibehalten wird. Daher können Sie nicht davon ausgehen, dass obj und T auf dasselbe Objekt verwiesen wird.

ConvertToType soll verwendet werden, wenn Sie eine Klasse implementieren, die von JavaScriptConverter. Der Konvertercode muss in der Lage sein, einen Wert in das Wörterbuch zu übernehmen, den der Serializer an ihn übergibt, und dann diesen Wert in eine Instanz des Typs Tkonvertieren. Anstatt den benutzerdefinierten Konvertierungscode erneut zu implementieren, um diese Aufgabe auszuführen, können Sie die ConvertToType Methode aus dem Konvertercode aufrufen.

Gilt für