csharppublic class Source{ public string Name { get; set; } public int Age { get; set; } public string Address { get; set; }}public class Destination{ public string Name { get; set; } public int Age { get; set; }}
csharppublic class Source{ public string Name { get; set; } public int Age { get; set; }}public class Destination{ public string Name { get; set; }}var config = new MapperConfiguration(cfg =>{ cfg.CreateMap() .ForMember(dest => dest.Name, opt => opt.Ignore());});var mapper = config.CreateMapper();var source = new Source{ Name = "John", Age = 25};var destination = mapper.Map(source);Console.WriteLine($"Name: {destination.Name}");
在上面的代码中,我们显式地忽略了Destination对象的Name属性。输出结果将会是:
Name:
条件映射有时候我们可能需要根据某些条件来进行映射,这可以通过使用条件操作符来实现。
csharppublic class Source{ public int Age { get; set; }}public class Destination{ public string AgeGroup { get; set; }}var config = new MapperConfiguration(cfg =>{ cfg.CreateMap() .ForMember(dest => dest.AgeGroup, opt => opt.MapFrom(src => src.Age >= 18 ? "Adult" : "Child"));});var mapper = config.CreateMapper();var source1 = new Source{ Age = 25};var destination1 = mapper.Map(source1);Console.WriteLine($"Age Group: {destination1.AgeGroup}");var source2 = new Source{ Age = 10};var destination2 = mapper.Map(source2);Console.WriteLine($"Age Group: {destination2.AgeGroup}");