Как использовать AutoMapper в ASP.NET Core 3.0 через внедрение зависимостей

Шаг 1. Установите расширение AutoMapper из диспетчера пакетов в свой проект.

Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection -Version 7.0.0

Шаг 2. Зарегистрируйте службу в CinfigureServices на Startup.cs

// 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"

Ссылка:

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *