JavaScriptSerializer.ConvertToType メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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 文字列。
例外
生成される JSON 形式の文字列が、MaxJsonLength 値を超えています。
- または -
obj
に循環参照が含まれています。 循環参照は、子オブジェクトが親オブジェクトへの参照を持ち、親オブジェクトがその子オブジェクトへの参照を持つ場合に発生します。
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
変換対象のオブジェクト。
戻り値
- T
ターゲットの型に変換されたオブジェクト。
例外
obj
(または obj
の入れ子にされたメンバー) にはカスタムの型を示す "__type" プロパティが含まれていますが、シリアライザーに関連付けられた型リゾルバーは対応するマネージド型を見つけることができません。
または -
obj
(またはobj
の入れ子にされたメンバー) にはカスタムの型を示す "__type" プロパティが含まれていますが、対応する JSON 文字列を逆シリアル化した結果を指定のターゲットの型に代入できません。または -
obj
(またはobj
の入れ子にされたメンバー) には、Object またはインスタンス化できない型 (抽象型やインターフェイスなど) を示す "__type" プロパティが含まれています。または -
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
のインスタンスに変換しようとします。 この変換中に、オブジェクト参照の等価性が維持される保証はありません。 したがって、同じオブジェクトを obj
想定して T
参照することはできません。
ConvertToType は、派生 JavaScriptConverter元のクラスを実装する場合に使用することを目的としています。 コンバーター コードは、シリアライザーが渡すディクショナリ内の値を取得し、その値を型 T
のインスタンスに変換できる必要があります。 カスタム変換コードを再実装してこのタスクを実行する代わりに、コンバーター コードからメソッドを ConvertToType 呼び出すことができます。