1:AutoMapper说明
对象转对象的一种映射器
2:Core中如何配置AutoMapper
1.NuGet安装AutoMapper.Extensions.Microsoft.DependencyInjection
2.创建配置文件,并添加映射配置
需要继承AutoMapper中的Profile,
namespace Pckj.Test.Demo.Services
{
public class AutoMapperProfiles:Profile
{
public AutoMapperProfiles()
{
//构造函数中创建映射关系
CreateMap<Tsourse, TDes>().ReverseMap(); //Tsourse 原对象类型,TDes 目标对象类型 ReverseMap,可相互转换
}
}
}
3:在Startup启动类中的ConfigureServices方法中将服务添加到容器
AutoMapperProfiles是上面步骤中定义的配置文件,具体代码如下:
services.AddAutoMapper(typeof(AutoMapperProfiles));
其他配置方式如下:
public class Startup { /// <summary> /// 构造函数 /// </summary> /// <param name="configuration"></param> public Startup(IConfiguration configuration) { Configuration = configuration; } /// <summary> /// 配置服务 /// </summary> /// <param name="services"></param> public void ConfigureServices(IServiceCollection services) { AutoMapper.MapperConfiguration config = new AutoMapper.MapperConfiguration(mce => { mce.AddMaps(new string[] { "Pckj.Test.Demo.Services" });//添加程序集中包含的映射定义。寻找AutoMapper.Profile 【Pckj.Test.Demo.Services】程序集名称,也就是 AutoMapperProfiles所在的位置) //mce.AddProfile(new AutoMapperProfiles()); }); var mapper = config.CreateMapper(); services.AddSingleton<AutoMapper.IMapper>(mapper); } }
使用示例:
public class DemoService : IDemoService
{
/// <summary>
/// 构造方法
/// </summary>
/// <param name="mapper"></param>
public SupplierService(AutoMapper.IMapper mapper)
{
Mapper = mapper;
}
public AutoMapper.IMapper Mapper { get; set; }
Mapper.Map<List<Tdes>>(List<Tsource>) ;//集合转换
Mapper.Map<Tdes>(Tsource); //对象转换
}