JavaScriptSerializer.ConvertToType Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
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.