Partager via


JavaScriptSerializer.ConvertToType Méthode

Définition

Surcharges

ConvertToType(Object, Type)

Convertit l'objet spécifié dans le type spécifié.

ConvertToType<T>(Object)

Convertit l'objet donné dans le type spécifié.

ConvertToType(Object, Type)

Convertit l'objet spécifié dans le type spécifié.

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ètres

obj
Object

Objet à convertir.

targetType
Type

Type dans lequel convertir l'objet.

Retours

Object

Chaîne JSON sérialisée.

Exceptions

La chaîne JSON résultante dépasse la valeur de MaxJsonLength.

  • ou - obj contient une référence circulaire. Une référence circulaire se produit lorsqu'un objet enfant possède une référence à un objet parent et que l'objet parent possède une référence à l'objet enfant.

La limite de récurrence définie par RecursionLimit a été dépassée.

Remarques

Lorsque l’instance JavaScriptSerializer sérialise un type pour lequel un convertisseur personnalisé est inscrit, le sérialiseur appelle la Serialize méthode pour obtenir le dictionnaire de paires nom/valeur qui seront converties en chaîne au format JSON.

La Serialize méthode peut également lever des exceptions si le graphique d’objet est trop complexe ou si les instances inscrites d’un JavaScriptConverter convertisseur ont provoqué la récursivité du convertisseur.

S’applique à

ConvertToType<T>(Object)

Convertit l'objet donné dans le type spécifié.

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

Paramètres de type

T

Type dans lequel obj doit être converti.

Paramètres

obj
Object

Objet à convertir.

Retours

T

Objet qui a été converti dans le type cible.

Exceptions

obj (ou un membre imbriqué de obj) contient une propriété "__type" qui indique un type personnalisé, mais le programme de résolution de type associé au sérialiseur ne trouve pas de type managé correspondant.

  • ou - obj (ou un membre imbriqué de obj) contient une propriété "__type" qui indique un type personnalisé, mais le résultat de la désérialisation de la chaîne JSON correspondante ne peut pas être assigné au type de cible attendu.

  • ou - obj (ou un membre imbriqué de obj) contient une propriété "__type" qui indique un Object ou un type ne pouvant être instancié (par exemple, un type abstrait ou une interface).

  • ou - Une tentative a été faite pour convertir obj en un type managé comme un tableau, ce qui n'est pas pris en charge pour une utilisation comme cible de désérialisation.

  • ou - Il n'est pas possible de convertir obj en T.

obj est un type de dictionnaire et une valeur de clé autre qu'une chaîne a été rencontrée.

  • ou - obj inclut des définitions de membre non disponibles sur le type T.

Exemples

L’exemple suivant montre comment utiliser la ConvertToType méthode pour obtenir un ListItem objet à partir d’une valeur du dictionnaire passé au convertisseur. Cet exemple de code fait partie d’un exemple plus grand fourni pour la JavaScriptSerializer classe.

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

Remarques

La ConvertToType méthode tente de convertir l’instance d’objet représentée par obj une instance de type T. Pendant cette conversion, il n’existe aucune garantie que l’égalité des références d’objet est maintenue. Par conséquent, vous ne pouvez pas supposer que obj et T faire référence au même objet.

ConvertToType est destiné à être utilisé si vous implémentez une classe qui dérive de JavaScriptConverter. Le code du convertisseur doit pouvoir prendre une valeur qui se trouve dans le dictionnaire que le sérialiseur lui transmet, puis convertir cette valeur en instance de type T. Au lieu de réécrire le code de conversion personnalisé pour effectuer cette tâche, vous pouvez appeler la ConvertToType méthode à partir du code du convertisseur.

S’applique à