JavaScriptConverter.Deserialize 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当在派生类中重写时,将所提供的字典转换为指定类型的对象。
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
返回
已反序列化的对象。
实施者说明
该方法 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 该问题的错误。