JavaScriptSerializer.ConvertToType Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
ConvertToType(Object, Type) |
Converte l'oggetto indicato nel tipo specificato. |
ConvertToType<T>(Object) |
Converte l'oggetto specificato nel tipo specificato. |
ConvertToType(Object, Type)
Converte l'oggetto indicato nel tipo specificato.
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
Parametri
- obj
- Object
Oggetto da convertire.
- targetType
- Type
Tipo in cui convertire l'oggetto.
Restituisce
Stringa JSON serializzata.
Eccezioni
La stringa in formato JSON risultante supera il valore di MaxJsonLength.
-oppure-
obj
contiene un riferimento circolare. Un riferimento circolare si verifica quando un oggetto figlio ha un riferimento a un oggetto padre e l'oggetto padre ha un riferimento all'oggetto figlio.
È stato superato il limite di ricorsione definito da RecursionLimit.
Commenti
Quando l'istanza JavaScriptSerializer serializza un tipo per cui viene registrato un convertitore personalizzato, il serializzatore chiama il metodo per ottenere il Serialize dizionario delle coppie nome/valore che verranno convertite in una stringa formattata JSON.
Il Serialize metodo può anche generare eccezioni se il grafico dell'oggetto è troppo complesso o se le istanze registrate di JavaScriptConverter hanno causato la ricorsione del convertitore.
Si applica a
ConvertToType<T>(Object)
Converte l'oggetto specificato nel tipo specificato.
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
Parametri di tipo
- T
Tipo nel quale obj
verrà convertito.
Parametri
- obj
- Object
Oggetto da convertire.
Restituisce
- T
Oggetto convertito nel tipo di destinazione.
Eccezioni
obj
, o un membro annidato di obj
, contiene una proprietà "__type" che indica un tipo personalizzato, ma il resolver di tipi associato al serializzatore non riesce a trovare un tipo gestito corrispondente.
-oppure-
obj
, o un membro annidato di obj
, contiene una proprietà "__type" che indica un tipo personalizzato, ma il risultato della deserializzazione della stringa JSON corrispondente non può essere assegnato al tipo di destinazione previsto.
-oppure-
obj
, o un membro annidato di obj
, contiene una proprietà "__type" che indica Object o un tipo non istanziabile, quale ad esempio un tipo astratto o un'interfaccia.
-oppure-
Si è tentato di convertire obj
in un tipo gestito simile a una matrice, non supportato per l'utilizzo come destinazione della deserializzazione.
-oppure-
Non è possibile convertire obj
in T
.
obj
è un tipo di dizionario ed è stato rilevato un valore della chiave non-stringa.
-oppure-
obj
include definizioni dei membri non disponibili nel tipo T
.
Esempio
Nell'esempio seguente viene illustrato come usare il ConvertToType metodo per ottenere un oggetto da un ListItem valore nel dizionario passato al convertitore. Questo esempio di codice fa parte di un esempio più grande fornito per 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
Commenti
Il ConvertToType metodo tenta di convertire l'istanza dell'oggetto rappresentata da obj
in un'istanza di tipo T
. Durante questa conversione non esiste alcuna garanzia che venga mantenuta l'uguaglianza dei riferimenti a oggetti. Pertanto, non è possibile presupporre che obj
e T
fare riferimento allo stesso oggetto.
ConvertToType è destinato a essere usato se si implementa una classe che deriva da JavaScriptConverter. Il codice del convertitore deve essere in grado di accettare un valore presente nel dizionario passato dal serializzatore e quindi convertire tale valore in un'istanza di tipo T
. Anziché implementare nuovamente il codice di conversione personalizzato per eseguire questa attività, è possibile chiamare il ConvertToType metodo dal codice del convertitore.