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

C#Automapper如何对成员应用一些逻辑,c#,automapper,C#,Automapper,我使用Automapper将数据对象映射到域对象。对于其中一个成员,我想对源数据使用一些解析器,并将提取的数据映射到目标。如何在Automapper中使用一些自定义逻辑 Mapper.CreateMap<User, UserViewModel>() .ForMember(dest=>dest.Title, options=><ApplySomeLogicHere>); Mapper.Cr

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

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

谢谢,这很简单。例如这是映射字段的一些逻辑。对于本例,我填充了
dest.Date
,它是
WCFDate
type对象from字段,它是简单的
DateTime
结构

{... }
.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
,谢谢。我们可以在一个单独的类中使用这个逻辑并调用一个方法吗?当然可以。请参阅文档->获取一个错误,指出带有语句体的Lambda表达式无法转换为表达式树。您使用的是Resharper吗?什么版本?您使用的AutoMapper的哪个版本?.formMember(dest=>dest.TITLE,opt=>opt.MapFrom(src=>new{src.TITLE}));