JavaScriptSerializer.ConvertToType JavaScriptSerializer.ConvertToType JavaScriptSerializer.ConvertToType JavaScriptSerializer.ConvertToType Method

Определение

Перегрузки

ConvertToType(Object, Type) ConvertToType(Object, Type) ConvertToType(Object, Type) ConvertToType(Object, Type)

Преобразует указанный объект в заданный тип.Converts the specified object to the specified type.

ConvertToType<T>(Object) ConvertToType<T>(Object) ConvertToType<T>(Object) ConvertToType<T>(Object)

Приводит заданный объект к указанному типу.Converts the given object to the specified type.

ConvertToType(Object, Type) ConvertToType(Object, Type) ConvertToType(Object, Type) ConvertToType(Object, Type)

Преобразует указанный объект в заданный тип.Converts the specified object to the specified type.

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

Параметры

obj
Object Object Object Object

Преобразуемый объект.The object to convert.

targetType
Type Type Type Type

Тип, в который требуется преобразовать объект.The type to convert the object to.

Возвраты

Сериализованная строка формата JSON.The serialized JSON string.

Исключения

Результирующая строка формата JSON превышает значение свойства MaxJsonLength.The resulting JSON-formatted string exceeds the value of MaxJsonLength.

- или --or- Параметр obj содержит циклическую ссылку.obj contains a circular reference. Циклическая ссылка возникает, если дочерний объект ссылается на родительский объект, а родительский объект ссылается на дочерний.A circular reference occurs when a child object has a reference to a parent object, and the parent object has a reference to the child object.

Превышено ограничение на рекурсию, заданное свойством RecursionLimit.The recursion limit defined by RecursionLimit was exceeded.

Комментарии

Когда экземпляр выполняет сериализацию типа, для которого зарегистрирован пользовательский преобразователь, сериализатор Serialize вызывает метод для получения словаря пар "имя-значение", которые будут преобразованы в строку в формате JSON. JavaScriptSerializerWhen the JavaScriptSerializer instance is serializing a type for which a custom converter is registered, the serializer calls the Serialize method to obtain the dictionary of name/value pairs that will be converted to a JSON-formatted string.

Метод также может создавать исключения, если граф объектов является слишком сложным или если зарегистрированные JavaScriptConverter экземпляры вызывают рекурсию преобразователя. SerializeThe Serialize method can also throw exceptions if the object graph is too complex, or if registered instances of JavaScriptConverter have caused converter recursion.

ConvertToType<T>(Object) ConvertToType<T>(Object) ConvertToType<T>(Object) ConvertToType<T>(Object)

Приводит заданный объект к указанному типу.Converts the given object to the specified type.

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

Параметры типа

T

Тип, которому будет приведен параметр obj.The type to which obj will be converted.

Параметры

obj
Object Object Object Object

Преобразуемый объект.The object to convert.

Возвраты

T T T T

Объект, приведенный к целевому типу.The object that has been converted to the target type.

Исключения

Параметр obj (или вложенный член параметра obj) содержит свойство __type, которым обозначается пользовательский тип, однако связанному с сериализатором распознавателю типов не удалось найти соответствующий управляемый тип.obj (or a nested member of obj) contains a "__type" property that indicates a custom type, but the type resolver that is associated with the serializer cannot find a corresponding managed type.

- или --or- Параметр obj (или вложенный член параметра obj) содержит свойство __type, которым обозначается пользовательский тип, однако результат десериализации соответствующей строки формата JSON не может быть назначен ожидаемому целевому типу.obj (or a nested member of obj) contains a "__type" property that indicates a custom type, but the result of deserializing the corresponding JSON string cannot be assigned to the expected target type.

- или --or- Параметр obj (или вложенный член параметра obj) содержит свойство __type, которым обозначается объект Object или тип, не поддерживающий создание экземпляров (например, абстрактный тип или интерфейс).obj (or a nested member of obj) contains a "__type" property that indicates either Object or a non-instantiable type (for example, an abstract type or an interface).

- или --or- Предпринята попытка приведения параметра obj к управляемому типу, относящемуся к классу массивов, использование которого как целевого типа десериализации не поддерживается.An attempt was made to convert obj to an array-like managed type, which is not supported for use as a deserialization target.

-или--or- Не удается привести параметр obj к типу T.It is not possible to convert obj to T.

Параметр obj является типом словаря и при этом обнаружено значение ключа не строчного типа.obj is a dictionary type and a non-string key value was encountered.

-или--or- Параметр obj содержит определения членов, которые недоступны для типа T.obj includes member definitions that are not available on type T.

Примеры

В следующем примере показано, как использовать ConvertToType метод для ListItem получения объекта из значения словаря, переданного преобразователю.The following example shows how to use the ConvertToType method to obtain a ListItem object from a value in the dictionary that is passed to the converter. Этот пример кода является частью большого примера, JavaScriptSerializer приведенного для класса.This code example is part of a larger example provided for the JavaScriptSerializer class.

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

Комментарии

Метод пытается преобразовать экземпляр объекта, obj представленный экземпляром типа T. ConvertToTypeThe ConvertToType method tries to convert the object instance that is represented by obj to an instance of type T. Во время этого преобразования нет гарантии, что равенство ссылок на объекты сохраняется.During this conversion there is no guarantee that object reference equality is maintained. Таким образом, нельзя предположить, obj что T и ссылаться на один и тот же объект.Therefore, you cannot assume that obj and T refer to the same object.

ConvertToTypeпредназначен для использования при реализации класса, производного от JavaScriptConverter.ConvertToType is intended to be used if you implement a class that derives from JavaScriptConverter. Код преобразователя должен иметь возможность получить значение в словаре, переданном ему сериализатором, а затем преобразовать это значение в экземпляр типа T.Converter code must be able to take a value that is in the dictionary that the serializer passes to it, and then convert that value to an instance of type T. Вместо повторной реализации пользовательского кода преобразования для выполнения этой задачи можно вызвать ConvertToType метод из кода преобразователя.Instead of re-implementing the custom conversion code to perform this task, you can call the ConvertToType method from the converter code.

Применяется к