C#怎么使用AutoMapper C#对象映射库AutoMapper教程

admin 百科 13
AutoMapper 是 C# 中用于 DTO 与实体间映射的主流库,通过 Profile 配置和 IMapper 接口实现类型安全、可维护的自动映射,推荐使用依赖注入注册并启用 AssertConfigurationIsValid 验证。

C#怎么使用AutoMapper C#对象映射库AutoMapper教程-第1张图片-佛山资讯网

AutoMapper 是 C# 中最常用的对象映射库,用来简化两个不同结构的类(比如 DTO 和实体)之间的属性赋值。它不靠反射硬编码,而是通过配置一次、复用多次,让代码更干净、可维护性更高。

安装和基础配置

在 .NET 项目中,用 NuGet 安装 AutoMapper:

  • Package Manager:`Install-Package AutoMapper`
  • CLI:`dotnet add package AutoMapper`

从 AutoMapper 12.0 开始,推荐使用 MapperConfiguration + IMapper 方式(替代旧版静态 Mapper)。在 Startup 或 Program.cs 中注册:

var mappingConfig = new MapperConfiguration(mc =>
{
    mc.CreateMap<User, UserDto>();
    mc.CreateMap<UserDto, User>();
});
var mapper = mappingConfig.CreateMapper();

登录后复制

如果是 ASP.NET Core 项目,更推荐用依赖注入方式注册:

services.AddAutoMapper(typeof(Program)); // 扫描 Program 类所在程序集中的 Profile

登录后复制

用 Profile 组织映射规则

把映射逻辑集中管理,避免配置散落在各处。新建一个继承 Profile 的类:

public class UserMappingProfile : Profile
{
    public UserMappingProfile()
    {
        CreateMap<User, UserDto>()
            .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => $"{src.FirstName} {src.LastName}"))
            .ForMember(dest => dest.Age, opt => opt.MapFrom(src => DateTime.Now.Year - src.BirthDate.Year));
<pre class="brush:php;toolbar:false;">    CreateMap<UserDto, User>()
        .ForMember(dest => dest.BirthDate, opt => opt.Ignore()); // 忽略不映射的字段
}

登录后复制

}

标签: 编码 app 常见问题 c# .net

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~