JavaScriptSerializer.ConvertToType Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
ConvertToType(Object, Type) |
Converte o objeto especificado no tipo especificado. |
ConvertToType<T>(Object) |
Converte o objeto fornecido no tipo especificado. |
ConvertToType(Object, Type)
Converte o objeto especificado no 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 objeto a ser convertido.
- targetType
- Type
O tipo no qual converter o objeto.
Retornos
A cadeia de caracteres JSON serializada.
Exceções
A cadeia de caracteres formatada como 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 pelo RecursionLimit foi excedido.
Comentários
Quando a JavaScriptSerializer instância está serializando um tipo para o qual um conversor personalizado é registrado, o serializador chama o Serialize método para obter o dicionário de pares nome/valor que serão convertidos em uma cadeia de caracteres formatada em JSON.
O Serialize método também pode gerar exceções se o grafo de objeto for muito complexo ou se instâncias registradas tiverem causado a recursão do JavaScriptConverter conversor.
Aplica-se a
ConvertToType<T>(Object)
Converte o objeto fornecido no 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
O tipo para o qual o obj
será convertido.
Parâmetros
- obj
- Object
O objeto a ser convertido.
Retornos
- T
O objeto que foi convertido para o tipo de destino.
Exceções
O obj
(ou um membro aninhado de obj
) contém uma propriedade "__type" que indica um tipo personalizado, mas o resolvedor de tipo associado ao serializador não consegue encontrar um tipo gerenciado correspondente.
- ou -
O 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 de caracteres JSON correspondente não pode ser atribuído ao tipo de destino esperado.
- ou -
O obj
(ou um membro aninhado de obj
) contém uma propriedade "__type" que indica Object ou um tipo que não pode ser instanciado (por exemplo, um tipo abstrato ou uma interface).
- ou -
Foi feita uma tentativa de converter obj
em um tipo gerenciado semelhante a uma matriz, que não tem suporte para uso como um destino de desserialização.
- ou -
Não é possível converter obj
em T
.
obj
é um tipo de dicionário e um valor de chave que não é uma cadeia de caracteres foi encontrado.
- ou -
obj
inclui definições de membro que não estão disponíveis no tipo T
.
Exemplos
O exemplo a seguir mostra como usar o ConvertToType método para obter um ListItem objeto de um valor no dicionário que é passado para o 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
Comentários
O ConvertToType método tenta converter a instância de objeto representada por obj
uma instância do tipo T
. Durante essa conversão, não há garantia de que a igualdade de referência de objeto seja mantida. Portanto, você não pode assumir isso obj
e T
se referir ao mesmo objeto.
ConvertToType é destinado a ser usado se você implementar uma classe que deriva de JavaScriptConverter. O código do conversor deve ser capaz de obter um valor que esteja no dicionário que o serializador passa para ele e converter esse valor em uma instância do tipo T
. Em vez de implementar novamente o código de conversão personalizado para executar essa tarefa, você pode chamar o ConvertToType método do código do conversor.