Compartir vía


JavaScriptSerializer.ConvertToType Método

Definición

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

Object

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.

Se aplica a