Aracılığıyla paylaş


JavaScriptSerializer.ConvertToType Yöntem

Tanım

Aşırı Yüklemeler

ConvertToType(Object, Type)

Belirtilen nesneyi belirtilen türe dönüştürür.

ConvertToType<T>(Object)

Verilen nesneyi belirtilen türe dönüştürür.

ConvertToType(Object, Type)

Belirtilen nesneyi belirtilen türe dönüştürür.

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

Parametreler

obj
Object

Dönüştürülecek nesne.

targetType
Type

Nesneyi dönüştürülecek tür.

Döndürülenler

Object

Serileştirilmiş JSON dizesi.

Özel durumlar

Elde edilen JSON biçimli dize değerini MaxJsonLengthaşıyor.

-veya- obj döngüsel başvuru içerir. Bir alt nesnenin üst nesneye başvurusu olduğunda ve üst nesnenin alt nesneye başvurusu olduğunda döngüsel başvuru oluşur.

tarafından RecursionLimit tanımlanan özyineleme sınırı aşıldı.

Açıklamalar

Örnek, özel dönüştürücü kaydedildiği JavaScriptSerializer bir türü serileştirirken, seri hale getirici JSON biçimli bir dizeye dönüştürülecek ad/değer çiftlerinin sözlüğünü almak için yöntemini çağırır Serialize .

Yöntem Serialize ayrıca nesne grafı çok karmaşıksa veya kayıtlı örnekleri JavaScriptConverter dönüştürücü özyinelemesine neden olmuşsa özel durumlar oluşturabilir.

Şunlara uygulanır

ConvertToType<T>(Object)

Verilen nesneyi belirtilen türe dönüştürür.

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ür Parametreleri

T

Dönüştürülecek tür obj .

Parametreler

obj
Object

Dönüştürülecek nesne.

Döndürülenler

T

Hedef türe dönüştürülen nesne.

Özel durumlar

obj (veya iç içe bir üyesi) obj özel bir türü gösteren bir "__type" özelliği içerir, ancak seri hale getiriciyle ilişkili tür çözümleyici karşılık gelen yönetilen türü bulamıyor.

-veya- obj (veya iç içe bir üyesi) obj özel bir türü gösteren bir "__type" özelliği içerir, ancak karşılık gelen JSON dizesini seri durumdan çıkarmanın sonucu beklenen hedef türüne atanamaz.

-veya- obj (veya iç içe bir üyesi) obj örneği başlatılamayan bir türü (örneğin, soyut bir tür veya arabirim) belirten Object bir "__type" özelliği içerir.

-veya- Seri durumdan çıkarma hedefi olarak kullanılması desteklenmeyen dizi benzeri yönetilen türe dönüştürme obj girişiminde bulunuldu.

-veya- 'a dönüştürmek obj Tmümkün değildir.

obj bir sözlük türüdür ve dize olmayan bir anahtar değeriyle karşılaşıldı.

-veya- obj türünde Tkullanılamayan üye tanımlarını içerir.

Örnekler

Aşağıdaki örnek, dönüştürücüye geçirilen sözlükteki bir ListItem değerden nesne almak için yönteminin nasıl kullanılacağını ConvertToType gösterir. Bu kod örneği, sınıfı için JavaScriptSerializer sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

yöntemi ile ConvertToType temsil edilen obj nesne örneğini türünün Tbir örneğine dönüştürmeyi dener. Bu dönüştürme sırasında nesne başvurusu eşitliğinin korunduğunun garantisi yoktur. Bu nedenle, bunu obj varsayamaz ve T aynı nesneye başvuramazsınız.

ConvertToType , öğesinden JavaScriptConvertertüretilen bir sınıf uygularsanız kullanılmak üzere tasarlanmıştır. Dönüştürücü kodu, seri hale getiricinin geçtiği sözlükte yer alan bir değeri alabilmeli ve sonra bu değeri türünün Tbir örneğine dönüştürebilmelidir. Bu görevi gerçekleştirmek için özel dönüştürme kodunu yeniden uygulamak yerine dönüştürücü kodundan yöntemini çağırabilirsiniz ConvertToType .

Şunlara uygulanır