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