从AutoMapper定义的映射中获取所有已定义的映射

Ste*_*ath 13 expression map automapper

我们假设我有两个类:CD和CDModel,映射定义如下:

Mapper.CreateMap<CDModel, CD>()
    .ForMember(c => c.Name, opt => opt.MapFrom(m => m.Title));
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以从映射中检索原始表达式,c => c.Name(对于源)和m => m.Title(对于目标)?

我试过这个,但是我想念一些东西......

var map = Mapper.FindTypeMapFor<CDModel, CD>();
foreach (var propertMap in map.GetPropertyMaps())
{
    var source = ???;
    var dest = propertMap.DestinationProperty.MemberInfo;
}
Run Code Online (Sandbox Code Playgroud)

如何获取源和目标表达式?

Dav*_*ker 12

和你正在做的一样走......

foreach( var propertMap in map.GetPropertyMaps() )
{
    var dest = propertMap.DestinationProperty.MemberInfo;
    var source = propertMap.SourceMember;
}
Run Code Online (Sandbox Code Playgroud)

你究竟想要这些表达方式?你想要潜在的Lambas吗?

如果这样看

propertMap.GetSourceValueResolvers()
Run Code Online (Sandbox Code Playgroud)