JavaScriptSerializer.ConvertToType 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
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
를 deserialization 대상으로 사용할 수 없는 배열 형태의 관리되는 형식으로 변환하려고 했습니다.
또는
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 할 수 있습니다.