JavaScriptSerializer.ConvertToType 方法

定義

多載

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

要將物件轉換成的類型。

傳回

Object

序列化的 JSON 字串。

例外狀況

產生的 JSON 格式字串超過 MaxJsonLength 的值。

-或- obj 包含循環參考。 當子物件具有父物件的參考,而父物件又具有子物件的參考時,就會發生循環參考。

已超出 RecursionLimit 所定義的遞迴限制。

備註

JavaScriptSerializer當實例序列化註冊自訂轉換器的類型時,序列化程式會呼叫 Serialize 方法來取得將轉換成 JSON 格式字串的名稱/值組字典。

如果物件圖形太複雜,或 已註冊的 JavaScriptConverter 實例造成轉換器遞迴,方法 Serialize 也可以擲回例外狀況。

適用於

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

要轉換的物件。

傳回

T

已轉換成目標類型的物件。

例外狀況

obj (或 obj 的巢狀成員) 包含表示自訂類型的 "__type" 屬性,但與序列化程式相關聯的類型解析程式找不到對應的 Managed 類型。

-或- obj (或 obj 的巢狀成員) 包含表示自訂類型的 "__type" 屬性,但還原序列化對應 JSON 字串的結果無法指派給預期的目標類型。

-或- obj (或 obj 的巢狀成員) 包含 "__type" 屬性,表示 Object 或不可執行個體化的類型 (例如,抽象類型或介面)。

-或- 嘗試將 obj 轉換成陣列式的 Managed 類型,但是不支援使用該類型做為還原序列化目標。

-或- 無法將 obj 轉換成 T

obj 為字典類型,而且發生非字串索引鍵值。

-或- obj 包含的成員定義未在 T 類型上提供。

範例

下列範例示範如何使用 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 方法,而不是重新實作自訂轉換程式碼來執行這項工作。

適用於