JavaScriptSerializer.ConvertToType Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
ConvertToType(Object, Type) |
Converts the specified object to the specified type. |
ConvertToType<T>(Object) |
Converts the given object to the specified 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
Parameters
- obj
- Object
The object to convert.
- targetType
- Type
The type to convert the object to.
Returns
The serialized JSON string.
Exceptions
The resulting JSON-formatted string exceeds the value of MaxJsonLength.
-or-
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.
The recursion limit defined by RecursionLimit was exceeded.
Remarks
When 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.
The Serialize method can also throw exceptions if the object graph is too complex, or if registered instances of JavaScriptConverter have caused converter recursion.
Applies to
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
Type Parameters
- T
The type to which obj
will be converted.
Parameters
- obj
- Object
The object to convert.
Returns
The object that has been converted to the target type.
Exceptions
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
(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
(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-
An attempt was made to convert obj
to an array-like managed type, which is not supported for use as a deserialization target.
-or-
It is not possible to convert obj
to T
.
obj
is a dictionary type and a non-string key value was encountered.
-or-
obj
includes member definitions that are not available on type T
.
Examples
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. 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
Remarks
The 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. Therefore, you cannot assume that obj
and T
refer to the same object.
ConvertToType is intended to be used if you implement a class that derives from JavaScriptConverter. 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
. Instead of re-implementing the custom conversion code to perform this task, you can call the ConvertToType method from the converter code.