IDataContractSurrogate.GetDeserializedObject(Object, Type) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Selama deserialisasi, mengembalikan objek yang merupakan pengganti objek yang ditentukan.
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
Parameter
- obj
- Object
Objek deserialisasi yang akan diganti.
Mengembalikan
Objek deserialisasi yang diganti. Objek ini harus berjenis yang dapat diserialisasikan oleh DataContractSerializer. Misalnya, harus ditandai dengan DataContractAttribute atribut atau mekanisme lain yang dikenali serializer.
Contoh
Contoh berikut menunjukkan implementasi GetDeserializedObject metode .
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
Keterangan
Dalam implementasi sederhana, gunakan jika ... Kemudian... struktur kontrol lain untuk menguji apakah obj
nilainya adalah jenis pengganti. Jika demikian, ubah seperlunya dan kembalikan objek yang diganti. Objek yang diganti dapat menjadi instans baru atau instans yang sama obj
.