다음을 통해 공유


JavaScriptSerializer.ConvertToType 메서드

정의

오버로드

ConvertToType(Object, Type)

지정된 개체를 지정된 형식으로 변환합니다.

ConvertToType<T>(Object)

지정된 개체를 지정된 형식으로 변환합니다.

ConvertToType(Object, 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

변환할 개체입니다.

targetType
Type

개체를 변환할 대상 유형입니다.

반환

Object

serialize된 JSON 문자열입니다.

예외

결과 JSON 형식의 문자열이 MaxJsonLength의 값을 초과합니다.

또는 obj에 순환 참조가 있습니다. 순환 참조는 자식 개체와 부모 개체에서 서로를 참조하는 경우에 발생하며,

RecursionLimit로 정의된 재귀 한계를 초과했습니다.

설명

인스턴스가 JavaScriptSerializer 사용자 지정 변환기가 등록된 형식을 serialize하는 경우 serializer는 메서드를 호출 Serialize 하여 JSON 형식 문자열로 변환될 이름/값 쌍의 사전을 가져옵니다.

Serialize 개체 그래프가 너무 복잡하거나 등록된 인스턴스 JavaScriptConverter 가 변환기 재귀를 발생시킨 경우에도 메서드가 예외를 throw할 수 있습니다.

적용 대상

ConvertToType<T>(Object)

지정된 개체를 지정된 형식으로 변환합니다.

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가 변환될 형식입니다.

매개 변수

obj
Object

변환할 개체입니다.

반환

T

대상 형식으로 변환된 개체입니다.

예외

obj(또는 obj의 중첩된 멤버)에는 사용자 형식을 나타내는 "__type" 속성이 포함되지만 serializer와 연결된 형식 확인자는 해당 관리되는 형식을 찾을 수 없습니다.

또는 obj(또는 obj의 중첩된 멤버)에 사용자 지정 형식을 나타내는 “__type” 속성이 포함되어 있지만 해당 JSON 문자열의 역직렬화 결과를 원하는 대상 형식에 할당할 수 없습니다.

또는 obj 또는 obj의 중첩된 멤버에 Object 또는 인스턴스화할 수 없는 형식(추상 형식 또는 인터페이스 등)을 나타내는 “__type” 속성이 포함되어 있습니다.

또는 obj를 deserialization 대상으로 사용할 수 없는 배열 형태의 관리되는 형식으로 변환하려고 했습니다.

또는 objT로 변환할 수 없습니다.

obj는 사전 형식이며 문자열이 아닌 키 값이 발견되었습니다.

또는 obj에 형식 T에 사용할 수 없는 멤버 정의가 있습니다.

예제

다음 예제에서는 변환기로 전달 되는 사전의 값에서 개체를 가져오는 ListItem 메서드를 사용 ConvertToType 하는 방법을 보여 집니다. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 JavaScriptSerializer 클래스입니다.

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

설명

메서드가 ConvertToType 나타내는 obj 개체 인스턴스를 형식 T의 인스턴스로 변환하려고 합니다. 이 변환 중에 개체 참조 같음이 유지된다는 보장은 없습니다. 따라서 이를 obj 가정하고 T 동일한 개체를 참조할 수 없습니다.

ConvertToType 는 .에서 JavaScriptConverter파생되는 클래스를 구현하는 경우 사용됩니다. 변환기 코드는 serializer가 전달하는 사전에 있는 값을 가져와서 해당 값을 형식 T의 인스턴스로 변환할 수 있어야 합니다. 이 작업을 수행하기 위해 사용자 지정 변환 코드를 다시 구현하는 대신 변환기 코드에서 메서드를 호출 ConvertToType 할 수 있습니다.

적용 대상