/// <summary>
/// 對象映射擴展方法
/// </summary>
public static class MappingUtil
{
/// <summary>
/// 對象映射
/// </summary>
/// <typeparam name="TTarget">目標類</typeparam>
/// <typeparam name="TSource">源類</typeparam>
/// <param name="targetObject">目標對象</param>
/// <param name="sourceObject">源對象</param>
public static TTarget ObjectMapping<TTarget, TSource>(this TTarget targetObject, TSource sourceObject)
{
object value;
var targetType = targetObject?.GetType();
var sourceType = sourceObject?.GetType();
foreach (var item in sourceType.GetProperties())
{
try
{
value = sourceType.GetProperty(item.Name)?.GetValue(sourceObject);
if (value == null)
{
continue;
}
targetType.GetProperty(item.Name)?.SetValue(targetObject, value);
}
catch (Exception)
{
continue;
}
}
return targetObject;
}
}