publicclassSource{publicint Id { get; set; }publicstring Name { get; set; }}publicclassDestination{publicint Id { get; set; }publicstring FullName { get; set; }}
注意:
Source
中的
Name
属性需要映射到
Destination
的
FullName
属性。
3. 配置映射规则
在使用 AutoMapper 之前,我们需要先配置映射规则:
using AutoMapper;var config = new MapperConfiguration(cfg =>{ cfg.CreateMap() .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name));});var mapper = config.CreateMapper();
在这里,我们通过
CreateMap
方法定义了从
Source
到
Destination
的映射规则,并使用
ForMember
方法指定了属性之间的映射关系。
4. 执行对象映射
接下来,我们可以使用
mapper.Map
方法进行对象转换:
var source = new Source { Id = 1, Name = "张三" };var destination = mapper.Map(source);Console.WriteLine($"Id: {destination.Id}, FullName: {destination.FullName}");// 输出:Id: 1, FullName: 张三
可以看到,
Source
对象的属性值已经成功映射到了
Destination
对象。
四、高级功能
除了基本的属性映射,AutoMapper 还提供了许多高级功能,满足更复杂的开发需求。
1. 集合映射
AutoMapper 支持对集合类型的对象进行映射。例如:
var sources = new List{new Source { Id = 1, Name = "张三" },new Source { Id = 2, Name = "李四" }};var destinations = mapper.Map>(sources);foreach (var dest in destinations){ Console.WriteLine($"Id: {dest.Id}, FullName: {dest.FullName}");}