public TDest MapTo <TSrc, TDest>(TSrc src, TDest dest) { if (src == null) { return(dest); } var srcType = typeof(TSrc); var destType = typeof(TDest); var destObj = dest; var destProperties = destType.GetProperties(); foreach (var destProperty in destProperties) { if (!destProperty.CanWrite) { continue; } var srcProperty = srcType.GetProperty(destProperty.Name); if (srcProperty == null) { continue; } if (srcProperty.CanRead == false) { continue; } if (srcProperty.PropertyType != destProperty.PropertyType) { continue; } if (ReflectorHelper.IsBaseValueType(srcProperty.PropertyType) == false) { continue; } var srcPropertyValueObj = srcProperty.GetValue(src, null); destProperty.SetValue(destObj, srcPropertyValueObj, null); } return(destObj); }
public void IsBaseValueTypeTest() { var b = true; b = ReflectorHelper.IsBaseValueType((typeof(int))); b = ReflectorHelper.IsBaseValueType((typeof(Int32))); b = ReflectorHelper.IsBaseValueType((typeof(string))); b = ReflectorHelper.IsBaseValueType((typeof(Guid))); b = ReflectorHelper.IsBaseValueType((typeof(DateTime))); b = ReflectorHelper.IsBaseValueType((typeof(decimal))); b = ReflectorHelper.IsBaseValueType((typeof(Decimal))); b = ReflectorHelper.IsBaseValueType((typeof(IList <>))); b = ReflectorHelper.IsBaseValueType((typeof(IList))); b = ReflectorHelper.IsBaseValueType((typeof(List <>))); b = ReflectorHelper.IsBaseValueType((typeof(Child))); b = ReflectorHelper.IsBaseValueType((typeof(ICollection <>))); b = ReflectorHelper.IsBaseValueType((typeof(ICollection))); b = ReflectorHelper.IsBaseValueType((typeof(Parent))); b = ReflectorHelper.IsBaseValueType((typeof(Type))); b = ReflectorHelper.IsBaseValueType((typeof(NotImplementedException))); }