JavaScriptSerializer.ConvertToType 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| ConvertToType(Object, Type) |
將指定的物件轉換成指定的型別。 |
| ConvertToType<T>(Object) |
將給定物件轉換為指定的型別。 |
ConvertToType(Object, Type)
將指定的物件轉換成指定的型別。
public:
System::Object ^ ConvertToType(System::Object ^ obj, Type ^ targetType);
public object ConvertToType(object obj, Type targetType);
member this.ConvertToType : obj * Type -> obj
Public Function ConvertToType (obj As Object, targetType As Type) As Object
參數
- obj
- Object
要轉換的物件。
- targetType
- Type
要將物件轉換成的類型。
傳回
序列化的 JSON 字串。
例外狀況
遞迴極限 RecursionLimit 被超越。
備註
當 JavaScriptSerializer 實例正在序列化一個有自訂轉換器的類型時,序列化器會呼叫該 Serialize 方法,取得將轉換為 JSON 格式字串的名稱/值對字典。
若物件圖過於複雜,或註冊的 實Serialize例已導致轉換器遞迴,該JavaScriptConverter方法也能拋出例外。
適用於
ConvertToType<T>(Object)
將給定物件轉換為指定的型別。
public:
generic <typename T>
T ConvertToType(System::Object ^ obj);
public T ConvertToType<T>(object obj);
member this.ConvertToType : obj -> 'T
Public Function ConvertToType(Of T) (obj As Object) As T
類型參數
- T
將被轉換成 obj 的類型。
參數
- obj
- Object
要轉換的物件。
傳回
已轉換成目標型別的物件。
例外狀況
obj (或是 的 obj巢狀成員)包含一個「__type」屬性,表示自訂型別,但與序列化器相關的型別解析器找不到對應的受管理型別。
-或-
obj (或是 的 obj巢狀成員)包含一個「__type」屬性,表示自訂型別,但反序列化對應的 JSON 字串結果無法被指派到預期的目標型別。
-或-
obj (或是 的 obj巢狀成員)包含一個「__type」屬性,表示 Object 非可瞬間化的類型(例如抽象型態或介面)。
-或-
曾嘗試轉換 obj 成類似陣列的管理型態,但不支援作為反序列化目標使用。
-或-
無法轉換為 objT。
範例
以下範例說明如何使用此 ConvertToType 方法從字典中傳遞給轉換器的值中取得 ListItem 物件。 此程式碼範例是本類別更大範例 JavaScriptSerializer 的一部分。
ArrayList itemsList = (ArrayList)dictionary["List"];
for (int i=0; i<itemsList.Count; i++)
list.Add(serializer.ConvertToType<ListItem>(itemsList[i]));
Dim itemsList As ArrayList = CType(dictionary("List"), ArrayList)
Dim i As Integer
For i = 0 To itemsList.Count - 1
list.Add(serializer.ConvertToType(Of ListItem)(itemsList(i)))
Next i
備註
該 ConvertToType 方法嘗試將由 表示 obj 的物件實例轉換為型別 T為 的實例。 在此轉換過程中,無法保證物件參照的相等性會被維持。 因此,你不能假設 並objT指代同一個物件。
ConvertToType 設計用於用於由 衍生 JavaScriptConverter的類別。 轉換器程式碼必須能夠將序列化器傳給字典中的一個值,然後將該值轉換成型別 T為 的實例。 你不必重新實作自訂轉換程式碼來執行此任務,而是可以從轉換器程式碼中呼叫該 ConvertToType 方法。