JavaScriptSerializer.ConvertToType Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
| Name | Description |
|---|---|
| ConvertToType(Object, Type) |
Převede zadaný objekt na zadaný typ. |
| ConvertToType<T>(Object) |
Převede daný objekt na zadaný typ. |
ConvertToType(Object, Type)
Převede zadaný objekt na zadaný 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
Parametry
- obj
- Object
Objekt, který chcete převést.
- targetType
- Type
Typ, na který chcete objekt převést.
Návraty
Serializovaný řetězec JSON.
Výjimky
Výsledný řetězec ve formátu JSON překračuje hodnotu MaxJsonLength.
nebo
obj obsahuje cyklický odkaz. Cyklický odkaz nastane, když podřízený objekt má odkaz na nadřazený objekt a nadřazený objekt má odkaz na podřízený objekt.
Byl překročen limit rekurze definovaný RecursionLimit pomocí.
Poznámky
JavaScriptSerializer Když instance serializuje typ, pro který je registrován vlastní převaděč, serializátor volá Serialize metodu získat slovník párů name/value, které budou převedeny na řetězec ve formátu JSON.
Metoda Serialize může také vyvolat výjimky, pokud je objektový graf příliš složitý nebo pokud registrované instance JavaScriptConverter způsobily převaděč rekurze.
Platí pro
ConvertToType<T>(Object)
Převede daný objekt na zadaný 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
Parametry typu
- T
Typ, na který obj bude převeden.
Parametry
- obj
- Object
Objekt, který chcete převést.
Návraty
Objekt, který byl převeden na cílový typ.
Výjimky
obj (nebo vnořený člen obj) obsahuje vlastnost "__type", která označuje vlastní typ, ale překladač typů přidružený k serializátoru nemůže najít odpovídající spravovaný typ.
nebo
obj (nebo vnořený člen obj) obsahuje vlastnost "__type", která označuje vlastní typ, ale výsledek deserializace odpovídajícího řetězce JSON nelze přiřadit očekávanému cílovému typu.
nebo
obj (nebo vnořený člen obj) obsahuje vlastnost "__type", která označuje buď Object nebo ne okamžitě realizovatelný typ (například abstraktní typ nebo rozhraní).
nebo
Došlo k pokusu o převod obj na spravovaný typ podobný poli, který není podporován pro použití jako cíl deserializace.
nebo
Není možné převést obj na T.
obj je typ slovníku a byla zjištěna hodnota klíče bez řetězce.
nebo
obj obsahuje definice členů, které nejsou k dispozici pro typ T.
Příklady
Následující příklad ukazuje, jak pomocí ConvertToType metody získat ListItem objekt z hodnoty ve slovníku, který je předán převaděči. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu JavaScriptSerializer.
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
Poznámky
Metoda ConvertToType se pokusí převést instanci objektu, která je reprezentována obj na instanci typu T. Během tohoto převodu neexistuje žádná záruka, že je zachována rovnost odkazů na objekt. Proto nelze předpokládat, že obj a T odkazovat na stejný objekt.
ConvertToType je určena k použití, pokud implementujete třídu, která je odvozena z JavaScriptConverter. Kód převaděče musí být schopen vzít hodnotu, která je ve slovníku, který serializátor předá do něj, a pak tuto hodnotu převést na instanci typu T. Místo opětovné implementace vlastního kódu převodu k provedení této úlohy můžete volat ConvertToType metodu z kódu převaděče.