JavaScriptSerializer.ConvertToType Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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
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 T
dargestellt 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 T
konvertieren. Anstatt den benutzerdefinierten Konvertierungscode erneut zu implementieren, um diese Aufgabe auszuführen, können Sie die ConvertToType Methode aus dem Konvertercode aufrufen.