1. 程式人生 > 實用技巧 >AutoMapper自定義擴充套件

AutoMapper自定義擴充套件

  1  /// <summary>
  2     /// AutoMapper 自動對映擴充套件類
  3     /// </summary>
  4     public static class AutoMapper
  5     {
  6         #region 對映單個物件
  7         /// <summary>
  8         /// 對映單個物件
  9         /// </summary>
 10         /// <typeparam name="T">目標型別</typeparam>
 11         ///
<param name="Source">源引數</param> 12 /// <returns></returns> 13 public static T MapperToT<T>(this object Source) 14 { 15 try 16 { 17 if (Source == null) 18 { 19 return
default(T); 20 } 21 //m=>m.CreateMap() 引數一 源型別,引數二目標型別 22 MapperConfiguration mapperConfiguration = new MapperConfiguration(m => m.CreateMap(Source.GetType(), typeof(T))); 23 24 IMapper mapper = mapperConfiguration.CreateMapper();
25 26 return mapper.Map<T>(Source); 27 } 28 catch (Exception ex) 29 { 30 31 throw new Exception(ex.Message); 32 } 33 } 34 #endregion 35 36 #region 對映集合 37 /// <summary> 38 /// 對映集合 39 /// </summary> 40 /// <typeparam name="TSource">源型別</typeparam> 41 /// <typeparam name="TDestination">目標型別</typeparam> 42 /// <param name="objectList">源引數</param> 43 /// <returns></returns> 44 public static List<TDestination> MapToList<TSource, TDestination>(this IEnumerable<TSource> objectList) 45 { 46 try 47 { 48 MapperConfiguration mapperConfiguration = new MapperConfiguration(m => m.CreateMap<TSource, TDestination>()); 49 50 IMapper mapper = mapperConfiguration.CreateMapper(); 51 52 return mapper.Map<IEnumerable<TSource>, List<TDestination>>(objectList); 53 } 54 catch (Exception ex) 55 { 56 57 throw new Exception(ex.Message); 58 } 59 } 60 #endregion 61 62 #region 巢狀對映,忽略成員 63 /// <summary> 64 /// TDestination巢狀對映,忽略成員 65 /// </summary> 66 /// <typeparam name="TSource">源型別</typeparam> 67 /// <typeparam name="TDestination">轉為後的目標型別</typeparam> 68 /// <param name="objList">資料來源</param> 69 /// <param name="Ignore">忽略</param> 70 /// <returns></returns> 71 public static List<TDestination> MapToListWithIgnore<TSource, TDestination>(this IEnumerable<TSource> objList, string Ignore) 72 { 73 try 74 { 75 MapperConfiguration mapperConfiguration = new MapperConfiguration(m => m.CreateMap<TSource, TDestination>().ForMember(Ignore, a => a.Ignore())); 76 77 IMapper mapper = mapperConfiguration.CreateMapper(); 78 79 return mapper.Map<IEnumerable<TSource>, List<TDestination>>(objList); 80 } 81 catch (Exception ex) 82 { 83 84 throw new Exception(ex.Message); 85 } 86 } 87 #endregion 88 89 #region 對映為IEnumerable 90 /// <summary> 91 /// 對映為IEnumerable 92 /// </summary> 93 /// <typeparam name="TSource">源型別</typeparam> 94 /// <typeparam name="TDenstination">要轉換的目標型別</typeparam> 95 /// <param name="objectList">資料來源</param> 96 /// <returns></returns> 97 public static IEnumerable<TDenstination> MapToIEnumerable<TSource, TDenstination>(this IEnumerable<TSource> objectList) 98 { 99 try 100 { 101 MapperConfiguration mapperConfiguration = new MapperConfiguration(m => m.CreateMap<TSource, TDenstination>()); 102 103 IMapper mapper = mapperConfiguration.CreateMapper(); 104 105 return mapper.Map<IEnumerable<TSource>, IEnumerable<TDenstination>>(objectList); 106 } 107 catch (Exception ex) 108 { 109 110 throw new Exception(ex.Message); 111 } 112 } 113 #endregion 114 }
View Code