JavaScriptSerializer.ConvertToType Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| ConvertToType(Object, Type) |
Convertit l’objet spécifié en type spécifié. |
| ConvertToType<T>(Object) |
Convertit l’objet donné en type spécifié. |
ConvertToType(Object, Type)
Convertit l’objet spécifié en 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 vers lequel convertir l’objet.
Retours
Chaîne JSON sérialisée.
Exceptions
La chaîne au format JSON résultant 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 a une référence à un objet parent et que l’objet parent a une référence à l’objet enfant.
La limite de récursivité 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 des instances inscrites ont JavaScriptConverter provoqué la récursivité du convertisseur.
S’applique à
ConvertToType<T>(Object)
Convertit l’objet donné en 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 vers lequel obj sera converti.
Paramètres
- obj
- Object
Objet à convertir.
Retours
Objet qui a été converti en 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 peut pas trouver un 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 affecté au type cible attendu.
-ou-
obj (ou un membre imbriqué de obj) contient une propriété « __type » qui indique soit Object un type non instanciable (par exemple, un type abstrait ou une interface).
-ou-
Une tentative de conversion obj en type managé de type tableau n’est pas prise 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é non-chaîne a été rencontrée.
-ou-
obj inclut des définitions de membres qui ne sont pas 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 dans le 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 de 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éinscrire le code de conversion personnalisé pour effectuer cette tâche, vous pouvez appeler la ConvertToType méthode à partir du code de convertisseur.