JavaScriptSerializer.ConvertToType Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Överlagringar
| Name | Description |
|---|---|
| ConvertToType(Object, Type) |
Konverterar det angivna objektet till den angivna typen. |
| ConvertToType<T>(Object) |
Konverterar det angivna objektet till den angivna typen. |
ConvertToType(Object, Type)
Konverterar det angivna objektet till den angivna typen.
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
Parametrar
- obj
- Object
Objektet som ska konverteras.
- targetType
- Type
Den typ som objektet ska konverteras till.
Returer
Den serialiserade JSON-strängen.
Undantag
Den resulterande JSON-formaterade strängen överskrider värdet MaxJsonLengthför .
-eller-
obj innehåller en cirkelreferens. En cirkelreferens inträffar när ett underordnat objekt har en referens till ett överordnat objekt och det överordnade objektet har en referens till det underordnade objektet.
Rekursionsgränsen som definierades av RecursionLimit överskreds.
Kommentarer
När instansen JavaScriptSerializer serialiserar en typ som en anpassad konverterare är registrerad för anropar serialiseraren Serialize metoden för att hämta ordlistan med namn/värde-par som ska konverteras till en JSON-formaterad sträng.
Metoden Serialize kan också utlösa undantag om objektdiagrammet är för komplext eller om registrerade instanser av JavaScriptConverter har orsakat konverterarens rekursion.
Gäller för
ConvertToType<T>(Object)
Konverterar det angivna objektet till den angivna typen.
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
Typparametrar
- T
Den typ som obj ska konverteras.
Parametrar
- obj
- Object
Objektet som ska konverteras.
Returer
Objektet som har konverterats till måltypen.
Undantag
obj (eller en kapslad medlem i obj) innehåller egenskapen "__type" som anger en anpassad typ, men den typlösare som är associerad med serialiseraren kan inte hitta en motsvarande hanterad typ.
-eller-
obj (eller en kapslad medlem i obj) innehåller egenskapen "__type" som anger en anpassad typ, men resultatet av att deserialisera motsvarande JSON-sträng kan inte tilldelas till den förväntade måltypen.
-eller-
obj (eller en kapslad medlem i obj) innehåller egenskapen "__type" som anger antingen Object eller en icke-instansierbar typ (till exempel en abstrakt typ eller ett gränssnitt).
-eller-
Ett försök gjordes att konvertera obj till en matrisliknande hanterad typ, som inte stöds för användning som mål för deserialisering.
-eller-
Det går inte att konvertera obj till T.
obj är en ordlistetyp och ett nyckelvärde som inte är sträng påträffades.
-eller-
obj innehåller medlemsdefinitioner som inte är tillgängliga för typen T.
Exempel
I följande exempel visas hur du använder ConvertToType metoden för att hämta ett ListItem objekt från ett värde i ordlistan som skickas till konverteraren. Det här kodexemplet är en del av ett större exempel för JavaScriptSerializer klassen.
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
Kommentarer
Metoden ConvertToType försöker konvertera objektinstansen som representeras av obj till en instans av typen T. Under den här konverteringen finns det ingen garanti för att objektreferensjämlikhet bibehålls. Därför kan du inte anta det obj och T referera till samma objekt.
ConvertToType är avsedd att användas om du implementerar en klass som härleds från JavaScriptConverter. Konverterarens kod måste kunna ta ett värde som finns i ordlistan som serialiseraren skickar till den och sedan konvertera det värdet till en instans av typen T. I stället för att implementera den anpassade konverteringskoden igen för att utföra den här uppgiften kan du anropa ConvertToType metoden från konverterarkoden.