共用方式為


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 執行個體。

傳回

Object

還原序列化的物件。

給實施者的注意事項

方法 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 描述問題的錯誤。

適用於