添加项目文件。
This commit is contained in:
59
HT.Cloud.Code/Extend/Ext.Mapper.cs
Normal file
59
HT.Cloud.Code/Extend/Ext.Mapper.cs
Normal file
@ -0,0 +1,59 @@
|
||||
using AutoMapper;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace HT.Cloud.Code
|
||||
{
|
||||
public static partial class Extensions
|
||||
{
|
||||
/// <summary>
|
||||
/// 类型映射
|
||||
/// </summary>
|
||||
public static T MapTo<T>(this object obj)
|
||||
{
|
||||
if (obj == null) return default(T);
|
||||
|
||||
var config = new MapperConfiguration(cfg => cfg.CreateMap(obj.GetType(), typeof(T)));
|
||||
var mapper = config.CreateMapper();
|
||||
return mapper.Map<T>(obj);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 集合列表类型映射
|
||||
/// </summary>
|
||||
public static List<TDestination> MapToList<TDestination>(this IEnumerable source)
|
||||
{
|
||||
Type sourceType = source.GetType().GetGenericArguments()[0]; //获取枚举的成员类型
|
||||
var config = new MapperConfiguration(cfg => cfg.CreateMap(sourceType, typeof(TDestination)));
|
||||
var mapper = config.CreateMapper();
|
||||
|
||||
return mapper.Map<List<TDestination>>(source);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 集合列表类型映射
|
||||
/// </summary>
|
||||
public static List<TDestination> MapToList<TSource, TDestination>(this IEnumerable<TSource> source)
|
||||
{
|
||||
var config = new MapperConfiguration(cfg => cfg.CreateMap(typeof(TSource), typeof(TDestination)));
|
||||
var mapper = config.CreateMapper();
|
||||
|
||||
return mapper.Map<List<TDestination>>(source);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 类型映射
|
||||
/// </summary>
|
||||
public static TDestination MapTo<TSource, TDestination>(this TSource source, TDestination destination)
|
||||
where TSource : class
|
||||
where TDestination : class
|
||||
{
|
||||
if (source == null) return destination;
|
||||
|
||||
var config = new MapperConfiguration(cfg => cfg.CreateMap(typeof(TSource), typeof(TDestination)));
|
||||
var mapper = config.CreateMapper();
|
||||
return mapper.Map<TDestination>(source);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user