JavaScriptSerializer.ConvertToType 메서드

정의

오버로드

Name Description
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

개체를 변환할 형식입니다.

반품

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 하려고 했습니다.

-또는-

로 변환 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 할 수 있습니다.

적용 대상