JavaScriptSerializer.ConvertToType 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
| 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
변환할 개체입니다.
반품
대상 형식으로 변환된 개체입니다.
예외
obj (또는 )의 obj중첩 멤버 에는 사용자 지정 형식을 나타내는 "__type" 속성이 포함되어 있지만 serializer와 연결된 형식 확인자는 해당 관리되는 형식을 찾을 수 없습니다.
-또는-
obj (또는 )의 obj중첩 멤버 에는 사용자 지정 형식을 나타내는 "__type" 속성이 포함되어 있지만 해당 JSON 문자열을 역직렬화한 결과는 예상 대상 형식에 할당할 수 없습니다.
-또는-
obj (또는 )의 obj중첩 멤버 에는 인스턴스화할 수 없는 형식(예: 추상 형식 또는 인터페이스)을 나타내는 Object "__type" 속성이 포함되어 있습니다.
-또는-
역직렬화 대상으로 사용할 수 없는 배열과 유사한 관리형 형식으로 변환 obj 하려고 했습니다.
-또는-
로 변환 objT할 수 없습니다.
예제
다음 예제에서는 변환기로 전달 되는 사전의 값에서 개체를 가져오는 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 할 수 있습니다.