C# Automapper 如何将一些逻辑应用于成员

C# Automapper how to apply some logic to a member

我正在使用 Automapper 将数据对象映射到域对象。对于其中一名成员,我想对源数据使用一些解析器并将提取的数据映射到目标。我如何在 Automapper 中使用一些自定义逻辑?

    Mapper.CreateMap<User, UserViewModel>()
          .ForMember(dest=>dest.Title, 
                     options=><ApplySomeLogicHere>);

谢谢

很简单。例如。它是映射字段的一些逻辑。对于这个例子,我填充了dest.Date,它是来自简单DateTime结构

字段的WCFDate类型对象
{... }
.ForMember(dest => dest.Date,
                        opt => opt.MapFrom(src =>
                        {
                            try
                            {
                                var day = Convert.ToInt32(src.Date.Substring(0, 2));
                                var month = Convert.ToInt32(src.Date.Substring(3, 2));
                                var year = Convert.ToInt32(src.Date.Substring(6, 4));

                                return new WcfDate(new DateTime(year, month, day));
                            }
                            catch
                            {
                                throw new ArgumentException("Premium date conversion error for date {0}.", src.Date);
                            }
                        }));

如你所见。它是简单的 lamdba 表达式。

您可以创建自己的转换器。您必须从 AutoMapper 命名空间

实现接口 ITypeConverter<in TSource, out TDestination>