JavaScriptSerializer.ConvertToType Método

Definição

Sobrecargas

Name Description
ConvertToType(Object, Type)

Converte o objeto especificado para o tipo especificado.

ConvertToType<T>(Object)

Converte o objeto dado para o tipo especificado.

ConvertToType(Object, Type)

Converte o objeto especificado para o 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

O objetivo a converter.

targetType
Type

O tipo para converter o objeto.

Devoluções

A cadeia JSON serializada.

Exceções

A cadeia resultante formatada em JSON excede o valor de MaxJsonLength.

-ou-

obj contém uma referência circular. Uma referência circular ocorre quando um objeto filho tem uma referência a um objeto pai, e o objeto pai tem uma referência ao objeto filho.

O limite de recursão definido por RecursionLimit foi ultrapassado.

Observações

Quando a JavaScriptSerializer instância está a serializar um tipo para o qual um conversor personalizado está registado, o serializador chama o Serialize método para obter o dicionário de pares nome/valor que serão convertidos para uma cadeia formatada em JSON.

O Serialize método também pode lançar exceções se o grafo-objeto for demasiado complexo, ou se instâncias registadas de JavaScriptConverter causaram recursão no conversor.

Aplica-se a

ConvertToType<T>(Object)

Converte o objeto dado para o 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 Genérico

T

O tipo em que obj será convertido.

Parâmetros

obj
Object

O objetivo a converter.

Devoluções

T

O objeto que foi convertido para o tipo alvo.

Exceções

obj (ou um membro aninhado de obj) contém uma propriedade "__type" que indica um tipo personalizado, mas o resolvedor de tipos associado ao serializador não consegue encontrar um tipo gerido correspondente.

-ou-

obj (ou um membro aninhado de obj) contém uma propriedade "__type" que indica um tipo personalizado, mas o resultado da desserialização da cadeia JSON correspondente não pode ser atribuído ao tipo alvo esperado.

-ou-

obj (ou um membro aninhado de obj) contém uma propriedade "__type" que indica ou Object um tipo não instanciado (por exemplo, um tipo abstrato ou uma interface).

-ou-

Foi feita uma tentativa de converter obj para um tipo gerido semelhante a um array, que não é suportado para uso como alvo de desserialização.

-ou-

Não é possível converter obj para T.

obj é um tipo de dicionário e encontrava-se um valor-chave sem cadeia.

-ou-

obj inclui definições de membros que não estão disponíveis no tipo T.

Exemplos

O exemplo seguinte mostra como usar o ConvertToType método para obter um ListItem objeto a partir de um valor no dicionário que é passado ao conversor. Este exemplo de código faz parte de um exemplo maior fornecido para a 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

Observações

O ConvertToType método tenta converter a instância do objeto representada por obj para uma instância do tipo T. Durante esta conversão, não há garantia de que a igualdade de referência do objeto seja mantida. Portanto, não pode assumir isso obj e T referir-se ao mesmo objeto.

ConvertToType é destinado a ser usado se implementar uma classe que deriva de JavaScriptConverter. O código conversor deve ser capaz de tomar um valor que está no dicionário que o serializador lhe passa, e depois converter esse valor numa instância do tipo T. Em vez de reimplementar o código de conversão personalizado para realizar esta tarefa, pode chamar o ConvertToType método a partir do código do conversor.

Aplica-se a