IDataContractSurrogate.GetDeserializedObject(Object, Type) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Seri durumdan çıkarma sırasında, belirtilen nesnenin yerini alan bir nesne döndürür.
public:
System::Object ^ GetDeserializedObject(System::Object ^ obj, Type ^ targetType);
public object GetDeserializedObject (object obj, Type targetType);
abstract member GetDeserializedObject : obj * Type -> obj
Public Function GetDeserializedObject (obj As Object, targetType As Type) As Object
Parametreler
- obj
- Object
Değiştirilecek seri durumdan çıkarılmış nesne.
Döndürülenler
Değiştirilen seri durumdan çıkarılmış nesne. Bu nesne, tarafından DataContractSerializerseri hale getirilebilen bir türde olmalıdır. Örneğin, seri hale getiricinin DataContractAttribute tanıdığı öznitelik veya diğer mekanizmalarla işaretlenmelidir.
Örnekler
Aşağıdaki örnekte yönteminin bir uygulaması gösterilmektedir GetDeserializedObject .
public object GetDeserializedObject(Object obj , Type targetType)
{
Console.WriteLine("GetDeserializedObject invoked");
// This method is called on deserialization.
// If PersonSurrogated is being deserialized...
if (obj is PersonSurrogated)
{
//... use the XmlSerializer to do the actual deserialization.
PersonSurrogated ps = (PersonSurrogated)obj;
XmlSerializer xs = new XmlSerializer(typeof(Person));
return (Person)xs.Deserialize(new StringReader(ps.xmlData));
}
return obj;
}
Public Function GetDeserializedObject(ByVal obj As Object, _
ByVal targetType As Type) As Object Implements _
IDataContractSurrogate.GetDeserializedObject
Console.WriteLine("GetDeserializedObject invoked")
' This method is called on deserialization.
' If PersonSurrogated is being deserialized...
If TypeOf obj Is PersonSurrogated Then
Console.WriteLine(vbTab & "returning PersonSurrogated")
'... use the XmlSerializer to do the actual deserialization.
Dim ps As PersonSurrogated = CType(obj, PersonSurrogated)
Dim xs As New XmlSerializer(GetType(Person))
Return CType(xs.Deserialize(New StringReader(ps.xmlData)), Person)
End If
Return obj
End Function
Açıklamalar
Basit bir uygulamada, eğer... Sonra... else değerin obj
yedekli türde olup olmadığını test etmek için yapıyı denetler. Öyleyse, gerektiği gibi dönüştürün ve değiştirilen nesneyi döndürün. Değiştirilen nesne yeni bir örnek veya aynı obj
örnek olabilir.