1

我想在由通用映射器配置映射的每个属性上调用一个特定的方法 xyz()。这可能吗?

我正在使用 Automapper v 9。目的是调用 Automapper 映射的每个属性的方法,以在运行时检查添加删除数据。

public static IMapper CreateMapper<TSource, TDestination>()
        {
            var config = new MapperConfiguration(
                cfg =>
                {
                    cfg.Advanced.AllowAdditiveTypeMapCreation = true;
                    cfg.AllowNullDestinationValues = true;
                    cfg.AllowNullCollections = true;
                    cfg.CreateMap<TSource, TDestination>()
                    .PreserveReferences()
                });

            config.AssertConfigurationIsValid();

            return config.CreateMapper();
        }
4

2 回答 2

0

是的,你可以调用你想要的。我已经这样使用了。

  CreateMap<UserMessage, USER>()                    
                .ForMember(dest => dest.X, opts => opts.MapFrom(src => src.A!= null ? MessageExtensions.GetCvTitle(src.A) : string.Empty))
                .ForMember(dest => dest.Y, opts => opts.MapFrom(src => MessageExtensions.GetFacultyName(src.B)))
                .ForMember(dest => dest.Z, opts => opts.MapFrom(src => MessageExtensions.GetDepartmentName(src.C)))
                .ForMember(dest => dest.T, opts => opts.MapFrom(src => MessageExtensions.GetProgramName(src.D)))
于 2020-02-18T06:59:00.307 回答
0

是的,当然您可以根据需要进行操作,我的意思是在全球地图之前或之后!使用这个官方的 Auto-mapper 文档。以供参考

于 2020-02-07T12:41:15.743 回答