JavaScriptSerializer.ConvertToType Methode

Definition

Überlädt

Name Beschreibung
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

Die serialisierte JSON-Zeichenfolge.

Ausnahmen

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

-oder-

obj enthält einen Zirkelbezug. Ein Zirkelbezug tritt auf, wenn ein untergeordnetes Objekt über einen Verweis auf ein übergeordnetes Objekt verfügt und das übergeordnete Objekt einen Verweis auf das untergeordnete Objekt aufweist.

Die von ihnen definierte RecursionLimit 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-Wert-Paaren abzurufen, die in eine JSON-formatierte Zeichenfolge konvertiert werden.

Die Serialize Methode kann auch Ausnahmen auslösen, wenn das Objektdiagramm zu komplex ist oder wenn 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 geschachteltes Element von obj) enthält eine Eigenschaft "__type", die einen benutzerdefinierten Typ angibt, aber der typlöser, der dem Serializer zugeordnet ist, kann keinen entsprechenden verwalteten Typ finden.

-oder-

obj (oder ein geschachteltes Element von obj) enthält eine Eigenschaft "__type", die einen benutzerdefinierten Typ angibt, aber das Ergebnis der Deserialisierung der entsprechenden JSON-Zeichenfolge kann dem erwarteten Zieltyp nicht zugewiesen werden.

-oder-

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

-oder-

Es wurde versucht, in einen arrayähnlichen verwalteten Typ zu konvertieren obj , der für die Verwendung als Deserialisierungsziel nicht unterstützt wird.

-oder-

Es ist nicht möglich, in objT.

obj ist ein Wörterbuchtyp, und es wurde ein Nicht-Zeichenfolgenschlüsselwert gefunden.

-oder-

obj enthält Memberdefinitionen, die für den Typ Tnicht 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 besteht keine Garantie dafür, dass die Gleichheit des Objektverweises beibehalten wird. Daher können Sie nicht davon ausgehen, dass obj und T auf dasselbe Objekt verwiesen wird.

ConvertToType ist für die Verwendung vorgesehen, wenn Sie eine Klasse implementieren, die von JavaScriptConverter. Der Konvertercode muss in der Lage sein, einen Wert in das Wörterbuch zu übernehmen, das vom Serialisierer an ihn übergeben wird, und diesen Wert dann in eine Instanz des Typs Tzu konvertieren. 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: