JavaScriptSerializer.ConvertToType Metódus

Definíció

Túlterhelések

Name Description
ConvertToType(Object, Type)

A megadott objektumot a megadott típussá alakítja.

ConvertToType<T>(Object)

A megadott objektumot a megadott típussá alakítja.

ConvertToType(Object, Type)

A megadott objektumot a megadott típussá alakítja.

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

Paraméterek

obj
Object

Az átalakítandó objektum.

targetType
Type

Az objektum konvertálásának típusa.

Válaszok

A szerializált JSON-sztring.

Kivételek

Az eredményül kapott JSON-formátumú sztring meghaladja a következő értékét MaxJsonLength: .

-vagy-

obj körkörös hivatkozást tartalmaz. Körkörös hivatkozás akkor fordul elő, ha egy gyermekobjektum egy szülőobjektumra mutató hivatkozást, a szülőobjektum pedig a gyermekobjektumra mutató hivatkozást.

Túllépte a rekurziós korlátot RecursionLimit .

Megjegyzések

Ha a JavaScriptSerializer példány szerializál egy olyan típust, amelyhez egyéni konverter van regisztrálva, a szerializáló meghívja a Serialize metódust a név-érték párok szótárának beszerzésére, amelyeket JSON-formátumú sztringgé konvertálunk.

A Serialize metódus kivételeket is okozhat, ha az objektumdiagram túl összetett, vagy ha a regisztrált példányok konverter-rekurziót okoztak JavaScriptConverter .

A következőre érvényes:

ConvertToType<T>(Object)

A megadott objektumot a megadott típussá alakítja.

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

Típusparaméterek

T

Az a típus, amelyre obj konvertálni fogja a rendszer.

Paraméterek

obj
Object

Az átalakítandó objektum.

Válaszok

T

A céltípusra konvertált objektum.

Kivételek

obj (vagy a ) beágyazott tagja obj egyéni típust jelző "__type" tulajdonságot tartalmaz, de a szerializálóhoz társított típusfeloldó nem talál megfelelő felügyelt típust.

-vagy-

obj (vagy a ) beágyazott tagja obj egyéni típust jelző "__type" tulajdonságot tartalmaz, de a megfelelő JSON-sztring deszerializálásának eredménye nem rendelhető hozzá a várt céltípushoz.

-vagy-

obj (vagy a ) beágyazott tagja obj olyan "__type" tulajdonságot tartalmaz, amely vagy Object nem példányosítható típust (például absztrakt típust vagy felületet) jelez.

-vagy-

Kísérlet történt tömbszerű felügyelt típussá való konvertálásra obj , amely deszerializálási célként nem támogatott.

-vagy-

A konvertálás objTnem lehetséges.

obj egy szótártípus, és nem sztringkulcs-érték történt.

-vagy-

obj olyan tagdefiníciókat tartalmaz, amelyek nem érhetők el a típuson T.

Példák

Az alábbi példa bemutatja, hogyan szerezhet be objektumot ConvertToType a ListItem konverternek átadott szótár egyik értékéből a metódus használatával. Ez a példakód egy nagyobb, az JavaScriptSerializer osztályhoz tartozó példa része.

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

Megjegyzések

A ConvertToType metódus megpróbálja átalakítani az objektumpéldányt, amelyet obj egy típuspéldány Tképvisel. Az átalakítás során nincs garancia arra, hogy az objektumhivatkozások egyenlősége megmarad. Ezért nem feltételezheti ezt obj , és T nem hivatkozhat ugyanarra az objektumra.

ConvertToType akkor használható, ha olyan osztályt implementál, amely a következőből JavaScriptConverterszármazik: . A konverterkódnak képesnek kell lennie arra, hogy a szótárban található értéket a szerializáló átadja, majd ezt az értéket típuspéldánysá Tkonvertálja. Ahelyett, hogy újra implementálja az egyéni konverziós kódot ennek a feladatnak a végrehajtásához, meghívhatja a metódust ConvertToType a konverter kódjából.

A következőre érvényes: