Freigeben über


JavaScriptConverter.Deserialize Methode

Definition

Beim Überschreiben in einer abgeleiteten Klasse wird das bereitgestellte Wörterbuch in ein Objekt des angegebenen Typs konvertiert.

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

Parameter

dictionary
IDictionary<String,Object>

Eine IDictionary<TKey,TValue>-Instanz aus Eigenschaftendaten, die als Name-Wert-Paare gespeichert sind.

type
Type

Der Typ des resultierenden Objekts.

serializer
JavaScriptSerializer

Die JavaScriptSerializer-Instanz.

Gibt zurück

Object

Das deserialisierte Objekt.

Hinweise für Ausführende

Die Deserialize(IDictionary<String,Object>, Type, JavaScriptSerializer) Methode durchläuft die Werte im Parameter, um eine Instanz des typs zu erstellen, der im dictionary type Parameter angefordert wird. Obwohl ein Konverter Werte dictionarydirekt verwenden kann, empfehlen wir, dass der Konverterimplementierer stattdessen die ConvertToType<T>(Object) Methode verwendet. Der Konverter sollte diese Methode der instanz aufrufen, die JavaScriptSerializer aus dem serializer Parameter verfügbar ist.

Mit der ConvertToType<T>(Object) Methode kann der Konverter einen Eigenschaftswert aus dictionaryübergeben und dann einen Wert des erwarteten Typs zurückgeben. In einigen Fällen kann ein Konverter für einen benutzerdefinierten Typ mit Eigenschaften arbeiten, die selbst registrierten Konverter haben (z. B. typ A hat eine Eigenschaft von Typ B, und Typ B ist auch einem benutzerdefinierten Konverter zugeordnet). In diesem Fall wird sichergestellt, dass benutzerdefinierte Konverter rekursiv für Eigenschaftendaten aufgerufen werden, ConvertToType<T>(Object) die im Wörterbuch enthalten sind. Wenn der Konverter alle Einträge im Wörterbuch durchlaufen hat, wird eine erstellte Instanz des Zieltyps zurückgegeben.

Wenn der Konverter während der Deerialisierung ein Problem auftritt, sollte ein InvalidOperationException Fehler ausgelöst werden, der das Problem beschreibt.

Gilt für