在 AutoMapper 中处理两个属性不完全一样的对象时,可以使用 CreateMap 方法来指定属性之间的映射关系。
以下是一个示例:
using AutoMapper;
class Program
{
static void Main()
{
// 创建映射配置
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<SourceObject, DestinationObject>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.FullName))
.ForMember(dest => dest.Age, opt => opt.MapFrom(src => src.YearsOld));
});
// 创建映射器
var mapper = new Mapper(config);
// 定义源对象
var source = new SourceObject
{
Id = 1,
FullName = "John Doe",
YearsOld = 30
};
// 执行对象映射
var destination = mapper.Map<DestinationObject>(source);
// 输出结果
Console.WriteLine(#34;Id: {destination.Id}");
Console.WriteLine(#34;Name: {destination.Name}");
Console.WriteLine(#34;Age: {destination.Age}");
}
}
class SourceObject
{
public int Id { get; set; }
public string FullName { get; set; }
public int YearsOld { get; set; }
}
class DestinationObject
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
在示例中,创建了一个映射配置,并使用 CreateMap 方法指定了源对象类型和目标对象类型。
然后,使用 ForMember 方法来指定属性之间的映射关系。在这个例子中,将源对象的 FullName 属性映射到目标对象的 Name 属性,将源对象的 YearsOld 属性映射到目标对象的 Age 属性。
最后,使用映射器的 Map 方法执行对象映射,将源对象转换为目标对象。