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

生成的对象的类型。

返回

反序列化的对象。

实施者说明

该方法 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 该问题的错误。

适用于