IDataContractSurrogate.GetDeserializedObject(Object, Type) Methode

Definitie

Tijdens de deserialisatie wordt een object geretourneerd dat een vervanging is voor het opgegeven object.

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

Parameters

obj
Object

Het gedeserialiseerde object dat moet worden vervangen.

targetType
Type

Het Type object waaraan het vervangende object moet worden toegewezen.

Retouren

Het vervangen gedeserialiseerde object. Dit object moet van een type zijn dat kan worden geserialiseerd door de DataContractSerializer. Het moet bijvoorbeeld worden gemarkeerd met het DataContractAttribute kenmerk of andere mechanismen die door de serializer worden herkend.

Voorbeelden

In het volgende voorbeeld ziet u een implementatie van de GetDeserializedObject methode.

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

Opmerkingen

Gebruik in een eenvoudige implementatie een if... Dan... andere controlestructuur om te testen of de obj waarde van het vervangende type is. Zo ja, transformeer het indien nodig en retourneer het vervangende object. Het vervangende object kan een nieuw exemplaar of hetzelfde obj exemplaar zijn.

Van toepassing op