JavaScriptSerializer.ConvertToType Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
ConvertToType(Object, Type) |
Konwertuje określony obiekt na określony typ. |
ConvertToType<T>(Object) |
Konwertuje dany obiekt na określony typ. |
ConvertToType(Object, Type)
Konwertuje określony obiekt na określony typ.
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
Parametry
- obj
- Object
Do obiektu do skonwertowania.
- targetType
- Type
Typ, na który ma być konwertowany obiekt.
Zwraca
Serializowany ciąg JSON.
Wyjątki
Wynikowy ciąg w formacie JSON przekracza wartość .MaxJsonLength
-lub-
obj
zawiera odwołanie cykliczne. Odwołanie cykliczne występuje, gdy obiekt podrzędny ma odwołanie do obiektu nadrzędnego, a obiekt nadrzędny ma odwołanie do obiektu podrzędnego.
Przekroczono limit rekursji zdefiniowany przez RecursionLimit program .
Uwagi
JavaScriptSerializer Gdy wystąpienie serializuje typ, dla którego zarejestrowany jest konwerter niestandardowy, serializator wywołuje Serialize metodę w celu uzyskania słownika par nazwa/wartość, które zostaną przekonwertowane na ciąg w formacie JSON.
Metoda Serialize może również zgłaszać wyjątki, jeśli graf obiektu jest zbyt złożony lub jeśli zarejestrowane wystąpienia spowodowały JavaScriptConverter rekursję konwertera.
Dotyczy
ConvertToType<T>(Object)
Konwertuje dany obiekt na określony typ.
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
Parametry typu
- T
Typ, do którego obj
zostanie przekonwertowany.
Parametry
- obj
- Object
Do obiektu do skonwertowania.
Zwraca
- T
Obiekt, który został przekonwertowany na typ docelowy.
Wyjątki
obj
(lub zagnieżdżony element członkowski elementu obj
) zawiera właściwość "__type", która wskazuje typ niestandardowy, ale program rozpoznawania typów skojarzony z serializatorem nie może odnaleźć odpowiedniego typu zarządzanego.
-lub-
obj
(lub zagnieżdżony element członkowski elementu obj
) Zawiera właściwość "__type", która wskazuje typ niestandardowy, ale wynik deserializacji odpowiedniego ciągu JSON nie może być przypisany do oczekiwanego typu docelowego.
-lub-
obj
(lub zagnieżdżony element członkowski elementu obj
) zawiera właściwość "__type", która wskazuje lub Object typ niezwajny (na przykład typ abstrakcyjny lub interfejs).
-lub-
Podjęto próbę konwersji obj
na typ zarządzany przypominający tablicę, który nie jest obsługiwany do użycia jako cel deserializacji.
-lub-
Nie można przekonwertować obj
pliku na T
.
obj
jest typem słownika i napotkano wartość klucza innego niż ciąg.
-lub-
obj
zawiera definicje elementów członkowskich, które nie są dostępne w typie T
.
Przykłady
W poniższym przykładzie pokazano, jak za pomocą ConvertToType metody uzyskać ListItem obiekt z wartości w słowniku przekazywanym do konwertera. Ten przykład kodu jest częścią większego przykładu udostępnionego JavaScriptSerializer dla klasy .
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
Uwagi
Metoda ConvertToType próbuje przekonwertować wystąpienie obiektu reprezentowane przez obj
element na wystąpienie typu T
. Podczas tej konwersji nie ma gwarancji, że równość odwołań do obiektów jest zachowywana. W związku z tym nie można założyć, że obj
i T
odwołać się do tego samego obiektu.
ConvertToType jest przeznaczony do użycia w przypadku zaimplementowania klasy pochodzącej z klasy JavaScriptConverter. Kod konwertera musi mieć możliwość pobrania wartości, która znajduje się w słowniku, do którego przechodzi serializator, a następnie przekonwertować ją na wystąpienie typu T
. Zamiast ponownie implementować kod konwersji niestandardowej w celu wykonania tego zadania, można wywołać metodę ConvertToType z kodu konwertera.