JavaScriptSerializer.ConvertToType Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| ConvertToType(Object, Type) |
Convierte el objeto especificado en el tipo especificado. |
| ConvertToType<T>(Object) |
Convierte el objeto especificado en el tipo especificado. |
ConvertToType(Object, Type)
Convierte el objeto especificado en el tipo especificado.
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
Parámetros
- obj
- Object
Objeto que se va a convertir.
- targetType
- Type
Tipo al que se va a convertir el objeto.
Devoluciones
Cadena JSON serializada.
Excepciones
La cadena con formato JSON resultante supera el valor de MaxJsonLength.
O bien
obj contiene una referencia circular. Una referencia circular se produce cuando un objeto secundario tiene una referencia a un objeto primario y el objeto primario tiene una referencia al objeto secundario.
Se superó el límite de recursividad definido por RecursionLimit .
Comentarios
Cuando la JavaScriptSerializer instancia está serializando un tipo para el que se registra un convertidor personalizado, el serializador llama al Serialize método para obtener el diccionario de pares nombre-valor que se convertirán en una cadena con formato JSON.
El Serialize método también puede producir excepciones si el gráfico de objetos es demasiado complejo o si las instancias registradas de JavaScriptConverter han provocado la recursividad del convertidor.
Se aplica a
ConvertToType<T>(Object)
Convierte el objeto especificado en el tipo especificado.
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
Parámetros de tipo
- T
Tipo al que obj se convertirá.
Parámetros
- obj
- Object
Objeto que se va a convertir.
Devoluciones
Objeto que se ha convertido al tipo de destino.
Excepciones
obj (o un miembro anidado de obj) contiene una propiedad "__type" que indica un tipo personalizado, pero el solucionador de tipos asociado al serializador no puede encontrar un tipo administrado correspondiente.
O bien
obj (o un miembro anidado de obj) contiene una propiedad "__type" que indica un tipo personalizado, pero el resultado de deserializar la cadena JSON correspondiente no se puede asignar al tipo de destino esperado.
O bien
obj (o un miembro anidado de obj) contiene una propiedad "__type" que indica Object o un tipo no instantiable (por ejemplo, un tipo abstracto o una interfaz).
O bien
Se intentó convertir obj en un tipo administrado similar a una matriz, que no se admite para su uso como destino de deserialización.
O bien
No es posible convertir obj a T.
obj es un tipo de diccionario y se encontró un valor de clave que no es de cadena.
O bien
obj incluye definiciones de miembro que no están disponibles en el tipo T.
Ejemplos
En el ejemplo siguiente se muestra cómo usar el ConvertToType método para obtener un ListItem objeto de un valor en el diccionario que se pasa al convertidor. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la JavaScriptSerializer clase .
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
Comentarios
El ConvertToType método intenta convertir la instancia de objeto representada por en obj una instancia de tipo T. Durante esta conversión no hay ninguna garantía de que se mantenga la igualdad de referencia de objeto. Por lo tanto, no puede asumir que obj y T hacer referencia al mismo objeto.
ConvertToType está pensado para usarse si implementa una clase que deriva de JavaScriptConverter. El código del convertidor debe ser capaz de tomar un valor que se encuentra en el diccionario que el serializador pasa a él y, a continuación, convertir ese valor en una instancia de tipo T. En lugar de volver a implementar el código de conversión personalizado para realizar esta tarea, puede llamar al ConvertToType método desde el código del convertidor.