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


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

Mapper.CreateMap<CDModel, CD>()
    .ForMember(c => c.Name, opt => opt.MapFrom(m => m.Title));

有没有一种简单的方法来检索原件 表达 喜欢 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;
}

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


12003
2017-07-25 11:52


起源



答案:


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

foreach( var propertMap in map.GetPropertyMaps() )
{
    var dest = propertMap.DestinationProperty.MemberInfo;
    var source = propertMap.SourceMember;
}

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

如果这样看

propertMap.GetSourceValueResolvers()

11
2017-08-01 00:40





我也找到了 var map = Mapper.GetAllTypeMaps(); 也很有用,因为你可以搜索 SourceType中 要么 DestinationType


1
2017-12-05 11:40