using AutoMapper;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
|
namespace TProduct
|
{
|
/// <summary>
|
/// AutoMapper帮助类
|
/// </summary>
|
public static class AutoMapperHelper
|
{
|
/// <summary>
|
/// 获取单个
|
/// </summary>
|
/// <typeparam name="In"></typeparam>
|
/// <typeparam name="Out"></typeparam>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
public static Out GetSingle<In, Out>(In obj)
|
{
|
var mapper = new MapperConfiguration(cfg => cfg.CreateMap<In, Out>()).CreateMapper();
|
return mapper.Map<In, Out>(obj);
|
}
|
|
public static Out MapTo<In, Out>(this In obj)
|
{
|
return GetSingle<In, Out>(obj);
|
}
|
|
/// <summary>
|
/// 映射单个实例
|
/// </summary>
|
/// <typeparam name="In"></typeparam>
|
/// <typeparam name="Out"></typeparam>
|
/// <param name="inner"></param>
|
/// <param name="outer"></param>
|
public static void MapSingle<In, Out>(In inner, Out outer)
|
{
|
var mapper = new MapperConfiguration(cfg => cfg.CreateMap<In, Out>()).CreateMapper();
|
mapper.Map(inner, outer);
|
}
|
|
/// <summary>
|
/// 映射多个实例
|
/// </summary>
|
/// <typeparam name="In"></typeparam>
|
/// <typeparam name="Out"></typeparam>
|
/// <param name="innerList"></param>
|
/// <param name="outerList"></param>
|
public static void MapMultiple<In, Out>(IEnumerable<In> innerList, IEnumerable<Out> outerList)
|
{
|
var mapper = new MapperConfiguration(cfg => cfg.CreateMap<In, Out>()).CreateMapper();
|
mapper.Map(innerList, outerList);
|
}
|
|
public static void Map<In, Out>(this In inner, Out outer)
|
{
|
MapSingle(inner, outer);
|
}
|
|
public static void Map<In, Out>(this IEnumerable<In> innerList, IEnumerable<Out> outerList)
|
{
|
MapMultiple(innerList, outerList);
|
}
|
|
/// <summary>
|
/// 获取列表
|
/// </summary>
|
/// <typeparam name="In"></typeparam>
|
/// <typeparam name="Out"></typeparam>
|
/// <param name="objs"></param>
|
/// <returns></returns>
|
public static List<Out> GetMultiple<In, Out>(IEnumerable<In> objs)
|
{
|
var mapper = new MapperConfiguration(cfg => cfg.CreateMap<In, Out>()).CreateMapper();
|
return mapper.Map<IEnumerable<In>, List<Out>>(objs);
|
}
|
|
public static List<Out> MapTo<In, Out>(this IEnumerable<In> objs)
|
{
|
return GetMultiple<In, Out>(objs);
|
}
|
|
|
|
|
}
|
}
|