object System.Runtime.Serialization.ISerializationSurrogate.SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector)
{
Type objectType = obj.GetType();
foreach (SerializationEntry entry in info)
{
/* FIX: Rutger M. Dijkstra ([email protected])
* Search ancestor classes for qualified entries so don't
* miss out on inherited private fields.
*/
FieldInfo field = FindField(objectType,entry.Name);
if (field == null)
{
continue;
}
object value = entry.Value;
if (null != value)
{
if (!field.FieldType.IsInstanceOfType(value))
{
value = Convert.ChangeType(value, field.FieldType);
}
}
field.SetValue(obj, value);
}
return null;
}
#endregion