如何在ASP.NET Core中设置Automapper
我是.NET的新手,所以我决定使用.NET Core,而不是学习“旧方法”。我在这里找到了有关为.NET
Core设置AutoMapper的详细文章,但是对于新手来说,是否有更简单的演练?
回答:
我想到了!详细信息如下:
- 通过NuGet将主要的AutoMapper软件包添加到您的解决方案中。
通过NuGet将AutoMapper依赖项注入程序包添加到您的解决方案中。
为映射配置文件创建一个新类。(我在主解决方案目录中创建了一个名为的类,
MappingProfile.cs
并添加了以下代码。)我将使用User
andUserDto
对象作为示例。public class MappingProfile : Profile {
public MappingProfile() {
// Add as many of these lines as you need to map your objects
CreateMap<User, UserDto>();
CreateMap<UserDto, User>();
}
}
然后在
Startup.cs
如下所示添加AutoMapperConfiguration :public void ConfigureServices(IServiceCollection services) {
// .... Ignore code before this
// Auto Mapper Configurations
var mappingConfig = new MapperConfiguration(mc =>
{
mc.AddProfile(new MappingProfile());
});
IMapper mapper = mappingConfig.CreateMapper();
services.AddSingleton(mapper);
services.AddMvc();
}
要在代码中调用映射的对象,请执行以下操作:
public class UserController : Controller {
// Create a field to store the mapper object
private readonly IMapper _mapper;
// Assign the object in the constructor for dependency injection
public UserController(IMapper mapper) {
_mapper = mapper;
}
public async Task<IActionResult> Edit(string id) {
// Instantiate source object
// (Get it from the database or whatever your code calls for)
var user = await _context.Users
.SingleOrDefaultAsync(u => u.Id == id);
// Instantiate the mapped data transfer object
// using the mapper you stored in the private field.
// The type of the source object is the first type argument
// and the type of the destination is the second.
// Pass the source object you just instantiated above
// as the argument to the _mapper.Map<>() method.
var model = _mapper.Map<UserDto>(user);
// .... Do whatever you want after that!
}
}
我希望这可以帮助某人从ASP.NET Core重新开始!我欢迎任何反馈或批评,因为我还是.NET世界的新手!
以上是 如何在ASP.NET Core中设置Automapper 的全部内容, 来源链接: utcz.com/qa/427662.html