I am writing code to transform one object to another using reflection...
It's in progress but I think it would boil down to the following where we trust both properties have the same type:
private void CopyPropertyValue(object source, string sourcePropertyName, object target, string targetPropertyName)
{
PropertyInfo sourceProperty = source.GetType().GetProperty(sourcePropertyName);
PropertyInfo targetProperty = target.GetType().GetProperty(targetPropertyName);
targetProperty.SetValue(target, sourceProperty.GetValue(source));
}
However I have the additional issue that the source type might be Nullable and the target type not. e.g Nullable<int>
=> int
. In this case I need to make sure it still works and some sensible behaviour is performed e.g. NOP or set the default value for that type.
What might this look like?