JavaScriptSerializer.ConvertToType Metod

Definition

Ö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

T

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.

Gäller för