JavaScriptSerializer.ConvertToType Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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.