1、安装nuget包
Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection
2、注入AutoMapper
public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies()); }
3、添加测试模型
public class Student { public int Id { get; set; } public int Age { get; set; } public string Name { get; set; } public string Addr { get; set; } public bool Sex { get; set; } }
public class StudentDto { public int Age { get; set; } public string Name { get; set; } public string Addr { get; set; } public bool Sex { get; set; } }
4、继承Profile,在构造函数中定义映射关系。
public class AutoProfile: Profile { public AutoProfile() { //定义映射,ReverseMap表示双向,还可以自定义映射字段 CreateMap<Student, StudentDto>().ReverseMap(); } }
5、测试代码
[Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { private readonly IMapper _mapper; public ValuesController(IMapper mapper) { _mapper = mapper; } // GET api/values [HttpGet] public Student Get() { var studentDto = new StudentDto { Name = "张三", Addr = "广州市", Age = 18, Sex = true }; var student = _mapper.Map<StudentDto, Student>(studentDto); return student; } }
测试结果如下
除了id没有,其他字段都自动匹配上值了,简单的入门级demo收工。