|
|
@ -65,10 +65,10 @@ namespace Wood.Util |
|
|
|
/// </summary>
|
|
|
|
/// <typeparam name="TIn"></typeparam>
|
|
|
|
/// <typeparam name="TOut"></typeparam>
|
|
|
|
public class ExpressionGenericMapper<TIn, TOut>//Mapper`2
|
|
|
|
public class EntityMapper<TIn, TOut>//Mapper`2
|
|
|
|
{ |
|
|
|
private static Func<TIn, TOut> _FUNC = null; |
|
|
|
static ExpressionGenericMapper() |
|
|
|
static EntityMapper() |
|
|
|
{ |
|
|
|
ParameterExpression parameterExpression = Expression.Parameter(typeof(TIn), "p"); |
|
|
|
List<MemberBinding> memberBindingList = new List<MemberBinding>(); |
|
|
@ -96,4 +96,43 @@ namespace Wood.Util |
|
|
|
return _FUNC(t); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 反射实现Mapper
|
|
|
|
/// </summary>
|
|
|
|
public class EntityMapper |
|
|
|
{ |
|
|
|
/// <summary>
|
|
|
|
/// 反射
|
|
|
|
/// </summary>
|
|
|
|
/// <typeparam name="TIn"></typeparam>
|
|
|
|
/// <typeparam name="TOut"></typeparam>
|
|
|
|
/// <param name="tIn"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
public static void Trans<TIn, TOut>(TIn tIn, TOut tOut, string excludeMembers = "") |
|
|
|
{ |
|
|
|
string[] excludeMemberArr = excludeMembers.Split(",").Select(itm => itm.Trim()).ToArray(); |
|
|
|
|
|
|
|
foreach (var itemOut in tOut.GetType().GetProperties()) |
|
|
|
{ |
|
|
|
if (excludeMemberArr.Contains(itemOut.Name)) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
var propIn = tIn.GetType().GetProperty(itemOut.Name); |
|
|
|
itemOut.SetValue(tOut, propIn.GetValue(tIn, null), null); |
|
|
|
} |
|
|
|
|
|
|
|
foreach (var itemOut in tOut.GetType().GetFields()) |
|
|
|
{ |
|
|
|
if (excludeMemberArr.Contains(itemOut.Name)) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
var fieldIn = tIn.GetType().GetField(itemOut.Name); |
|
|
|
itemOut.SetValue(tOut, fieldIn.GetValue(tIn)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|