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

所生成对象的类型。

返回

Object

已反序列化的对象。

实施者说明

该方法 Deserialize(IDictionary<String,Object>, Type, JavaScriptSerializer) 循环访问参数中的 dictionary 值,以构造参数中 type 请求的类型实例。 尽管转换器可以直接使用来自 dictionary的值,但我们建议转换器实现者改用该方法 ConvertToType<T>(Object) 。 转换器应调用参数中可用的serializer实例的此方法JavaScriptSerializer

该方法 ConvertToType<T>(Object) 使转换器能够传递 dictionary属性值,然后返回预期类型的值。 在某些情况下,自定义类型的转换器可能使用本身已注册转换器的属性 (,例如,类型 A 具有 B 类型的属性,类型 B 也与自定义转换器) 关联。 在这种情况下,调用 ConvertToType<T>(Object) 可确保对字典中包含的属性数据以递归方式调用自定义转换器。 当转换器循环访问字典中的所有条目时,它将返回目标类型的构造实例。

如果转换器在反序列化过程中遇到问题,它应引发描述 InvalidOperationException 该问题的错误。

适用于