如何在定义映射后忽略属性?

时间:2016-09-16 10:35:17

标签: c# automapper

我知道如何在映射定义时忽略属性。但是,我正在尝试为所有映射添加一个通用逻辑,以忽略基于某些条件的属性。为此,我正在使用这样的代码。

public static void ProcessMappings(this IMappingEngine engine)
{
    var typeMaps = engine.ConfigurationProvider.GetAllTypeMaps();
    foreach (var typeMap in typeMaps)
    {
        if (typeof(MyClass).IsAssignableFrom(typeMap.DestinationType)) 
        {
            // here let's say I want to ignore property "Property"
        }
    }
}

所以我的问题是,给定TypeMap的实例,如何设置要忽略的属性?

1 个答案:

答案 0 :(得分:1)

var propInfo = typeMap.DestinationType.GetProperty("PropertyToIgnore");
if (propInfo != null)
{
    typeMap.FindOrCreatePropertyMapFor(new  AutoMapper.Impl.PropertyAccessor(propInfo)).Ignore();
}

忽略方法用于忽略属性/成员