JavaScriptConverter.Deserialize Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При переопределении в производном классе преобразовывает предоставленный словарь в объект указанного типа.
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
Параметры
- dictionary
- IDictionary<String,Object>
Экземпляр IDictionary<TKey,TValue> для данных свойства, сохраненных в виде пары имя/значение.
- type
- Type
Тип результирующего объекта.
- serializer
- JavaScriptSerializer
Экземпляр класса JavaScriptSerializer.
Возвращаемое значение
Десериализованный объект.
Примечания для тех, кто реализует этот метод
Метод Deserialize(IDictionary<String,Object>, Type, JavaScriptSerializer) выполняет итератор по значениям в параметре dictionary
для создания экземпляра типа, запрошенного в параметре type
. Хотя преобразователь может напрямую использовать значения из dictionary
, рекомендуется, чтобы реализующий преобразователь использовал ConvertToType<T>(Object) метод. Преобразователь должен вызвать этот метод экземпляра, JavaScriptSerializer доступного из serializer
параметра.
Метод ConvertToType<T>(Object) позволяет преобразователю передавать значение свойства из dictionary
, а затем возвращать значение ожидаемого типа. В некоторых случаях преобразователь настраиваемого типа может работать со свойствами, которые сами имеют зарегистрированные преобразователи (например, тип A имеет свойство типа B, а тип B также связан с пользовательским преобразователем). В этом случае вызов ConvertToType<T>(Object) гарантирует, что пользовательские преобразователи будут рекурсивно вызываться для данных свойств, содержащихся в словаре. Когда преобразователь итерировал все записи в словаре, он возвращает созданный экземпляр целевого типа.
Если преобразователь сталкивается с проблемой во время десериализации, она должна вызвать ошибку InvalidOperationException , описывающую проблему.