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