JavaScriptSerializer.ConvertToType Metode

Definisi

Overload

Nama Deskripsi
ConvertToType(Object, Type)

Mengonversi objek yang ditentukan ke tipe yang ditentukan.

ConvertToType<T>(Object)

Mengonversi objek yang diberikan ke jenis yang ditentukan.

ConvertToType(Object, Type)

Mengonversi objek yang ditentukan ke tipe yang ditentukan.

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

Parameter

obj
Object

Objek yang akan dikonversi.

targetType
Type

Jenis untuk mengonversi objek menjadi.

Mengembalikan

String JSON yang diserialisasikan.

Pengecualian

String berformat JSON yang dihasilkan melebihi nilai MaxJsonLength.

-atau-

obj berisi referensi melingkar. Referensi melingkar terjadi ketika objek anak memiliki referensi ke objek induk, dan objek induk memiliki referensi ke objek anak.

Batas rekursi yang ditentukan oleh RecursionLimit terlampaui.

Keterangan

JavaScriptSerializer Ketika instans menserialisasikan Serialize jenis di mana pengonversi kustom terdaftar, serializer memanggil metode untuk mendapatkan kamus pasangan nama/nilai yang akan dikonversi ke string berformat JSON.

Metode ini Serialize juga dapat melemparkan pengecualian jika grafik objek terlalu kompleks, atau jika instans JavaScriptConverter terdaftar telah menyebabkan rekursi konverter.

Berlaku untuk

ConvertToType<T>(Object)

Mengonversi objek yang diberikan ke jenis yang ditentukan.

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

Jenis parameter

T

Jenis yang obj akan dikonversi.

Parameter

obj
Object

Objek yang akan dikonversi.

Mengembalikan

T

Objek yang telah dikonversi ke jenis target.

Pengecualian

obj (atau anggota berlapis dari obj) berisi properti "__type" yang menunjukkan jenis kustom, tetapi pemecah masalah jenis yang terkait dengan serializer tidak dapat menemukan jenis terkelola yang sesuai.

-atau-

obj (atau anggota berlapis dari obj) berisi properti "__type" yang menunjukkan jenis kustom, tetapi hasil deserialisasi string JSON yang sesuai tidak dapat ditetapkan ke jenis target yang diharapkan.

-atau-

obj (atau anggota berlapis dari obj) berisi properti "__type" yang menunjukkan atau Object jenis yang tidak dapat dibuat instan (misalnya, jenis abstrak atau antarmuka).

-atau-

Upaya dilakukan untuk mengonversi obj ke jenis terkelola seperti array, yang tidak didukung untuk digunakan sebagai target deserialisasi.

-atau-

Tidak dimungkinkan untuk mengonversi obj ke T.

obj adalah jenis kamus dan nilai kunci non-string ditemukan.

-atau-

obj menyertakan definisi anggota yang tidak tersedia pada jenis T.

Contoh

Contoh berikut menunjukkan cara menggunakan ConvertToType metode untuk mendapatkan ListItem objek dari nilai dalam kamus yang diteruskan ke pengonversi. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk JavaScriptSerializer kelas .

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

Keterangan

Metode ini ConvertToType mencoba mengonversi instans objek yang diwakili oleh obj ke instans jenis T. Selama konversi ini, tidak ada jaminan bahwa kesetaraan referensi objek dipertahankan. Oleh karena itu, Anda tidak dapat berasumsi bahwa obj dan T merujuk ke objek yang sama.

ConvertToType dimaksudkan untuk digunakan jika Anda menerapkan kelas yang berasal dari JavaScriptConverter. Kode konverter harus dapat mengambil nilai yang ada dalam kamus yang diteruskan oleh serializer ke dalamnya, lalu mengonversi nilai tersebut menjadi instans jenis T. Alih-alih menerapkan ulang kode konversi kustom untuk melakukan tugas ini, Anda dapat memanggil ConvertToType metode dari kode pengonversi.

Berlaku untuk