Шаг 1. Установите расширение AutoMapper из диспетчера пакетов в свой проект.
Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection -Version 7.0.0
// Startup.cs
using AutoMapper;
public void ConfigureServices(IServiceCollection services){
services.AddAutoMapper(typeof(Startup));
}
Шаг 3. Создайте модель и объект передачи данных
// User.cs
// The model you want to map from
public class User{
public string Name {get;set;}
public string Email {get;set;}
public string Phone {get;set;}
// Constructor to initialize User
public User(){
Name = "Nicky";
Email = "myemail@gmail.com";
Phone = "+81234588";
}
}
// UserDTO.cs
// The data transfer object you want to map to
public class UserDTO{
public string Name{get;set;}
public string Email{get;set;}
public string Phone{get;set;}
}
Шаг 4. Создайте файл класса AutoMapping для регистрации отношения сопоставления.
// AutoMapping.cs
using AutoMapper;
public class AutoMapping : Profile
{
public AutoMapping()
{
CreateMap<User, UserDTO>(); // means you want to map from User to UserDTO
}
}
Шаг 5. Сопоставьте пользователя с UserDTO в коде
// HomeController.cs
using AutoMapper;
public class HomeController : Controller
{
private readonly IMapper _mapper;
public HomeController(IMapper mapper)
{
_mapper = mapper;
}
public IActionResult GetUser()
{
User user = new User();
var userDTO = _mapper.Map<UserDTO>(user);
return View(userDTO);
}
}
Наконец, вы получили объект dto:
var name = userDTO.Name; // name = "Nicky"
var email = userDTO.Email; // email = "myemail@gmail.com"
var phone = userDTO.Phone; // phone = "+81234588"
Ссылка: