Bagikan melalui


IDataContractSurrogate.GetDeserializedObject(Object, Type) Metode

Definisi

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.

targetType
Type

Objek Type yang diganti harus ditetapkan.

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 .

Berlaku untuk