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