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
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 en el 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 ocurre cuando un objeto secundario hace 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 serializa 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 han provocado la recursividad del JavaScriptConverter 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 se convertirá obj
.
Parámetros
- obj
- Object
Objeto que se va a convertir.
Devoluciones
- T
Objeto convertido en el tipo de destino.
Excepciones
obj
(o un miembro anidado de obj
) contiene una propiedad "__type" que indica un tipo personalizado, pero la resolución de tipos que está asociada 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 puede asignarse al tipo de destino esperado.
o bien
obj
(o un miembro anidado de obj
) contiene una propiedad "__type" que indica Object o un tipo del que no se pueden crear instancias (por ejemplo, un tipo abstracto o una interfaz).
o bien
Se intentó convertir obj
en un tipo administrado a modo de matriz, que no se puede usar como destino de la deserialización.
o bien
No es posible convertir obj
en 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 es parte de un ejemplo mayor proporcionado para la clase JavaScriptSerializer.
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 obj
en 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 se puede suponer que obj
y T
hacen 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.