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>
我正在使用 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>