Udostępnij za pośrednictwem


JavaScriptConverter.Deserialize Metoda

Definicja

Po przesłonięciu w klasie pochodnej element konwertuje podany słownik na obiekt określonego typu.

public:
 abstract System::Object ^ Deserialize(System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ dictionary, Type ^ type, System::Web::Script::Serialization::JavaScriptSerializer ^ serializer);
public abstract object Deserialize (System.Collections.Generic.IDictionary<string,object> dictionary, Type type, System.Web.Script.Serialization.JavaScriptSerializer serializer);
abstract member Deserialize : System.Collections.Generic.IDictionary<string, obj> * Type * System.Web.Script.Serialization.JavaScriptSerializer -> obj
Public MustOverride Function Deserialize (dictionary As IDictionary(Of String, Object), type As Type, serializer As JavaScriptSerializer) As Object

Parametry

dictionary
IDictionary<String,Object>

IDictionary<TKey,TValue> Wystąpienie danych właściwości przechowywanych jako pary nazw/wartości.

type
Type

Typ wynikowego obiektu.

serializer
JavaScriptSerializer

Wystąpienie elementu JavaScriptSerializer.

Zwraca

Object

Obiekt deserializatora.

Uwagi dotyczące implementowania

Metoda Deserialize(IDictionary<String,Object>, Type, JavaScriptSerializer) iteruje wartości w parametrze dictionary w celu skonstruowania wystąpienia typu żądanego w parametrze type . Chociaż konwerter może bezpośrednio używać wartości z dictionaryprogramu , zaleca się, aby zamiast tego implementator konwertera ConvertToType<T>(Object) używał metody . Konwerter powinien wywołać tę metodę JavaScriptSerializer wystąpienia dostępnego z parametru serializer .

Metoda ConvertToType<T>(Object) umożliwia konwerterowi przekazywanie wartości właściwości z dictionaryklasy , a następnie zwracanie wartości oczekiwanego typu. W niektórych przypadkach konwerter typu niestandardowego może działać z właściwościami, które same zostały zarejestrowane konwertery (na przykład typ A ma właściwość typu B, a typ B jest również skojarzony z konwerterem niestandardowym). W takim przypadku wywołanie ConvertToType<T>(Object) zapewnia, że niestandardowe konwertery będą rekursywnie wywoływane dla danych właściwości zawartych w słowniku. Gdy konwerter iteruje wszystkie wpisy w słowniku, zwraca skonstruowane wystąpienie typu docelowego.

Jeśli konwerter napotka problem podczas deserializacji, powinien zgłosić InvalidOperationException błąd opisujący problem.

Dotyczy