IDataContractSurrogate.GetDeserializedObject(Object, Type) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.
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.