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
| Nazwa | Opis |
|---|---|
| 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
Obiekt do konwersji.
- targetType
- Type
Typ, na który ma być konwertowany obiekt.
Zwraca
Serializowany ciąg JSON.
Wyjątki
Wynikowy ciąg sformatowany 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 element .
Uwagi
JavaScriptSerializer Gdy wystąpienie serializuje typ, dla którego zarejestrowano konwerter niestandardowy, serializator wywołuje Serialize metodę w celu uzyskania słownika par nazw/wartości, które zostaną przekonwertowane na ciąg sformatowany w formacie JSON.
Metoda Serialize może również zgłaszać wyjątki, jeśli wykres 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
Obiekt do konwersji.
Zwraca
Obiekt, który został przekonwertowany na typ docelowy.
Wyjątki
obj (lub zagnieżdżony element członkowski ) 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 ) 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 ) obj zawiera właściwość "__type", która wskazuje Object lub typ niemożliwy do utworzenia wystąpienia (na przykład typ abstrakcyjny lub interfejs).
— lub —
Podjęto próbę konwersji obj na typ zarządzany podobny do tablicy, który nie jest obsługiwany do użycia jako cel deserializacji.
— lub —
Nie można przekonwertować obj na T.
obj jest typem słownika i napotkano wartość klucza innego niż ciąg.
— lub —
obj zawiera definicje składowych, 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 dla klasy 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
Uwagi
Metoda ConvertToType próbuje przekonwertować wystąpienie obiektu reprezentowane przez obj 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 ma być używany, jeśli implementujesz klasę pochodzącą z JavaScriptConverterklasy . 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ć ConvertToType metodę z kodu konwertera.