我知道如何在映射定义时忽略属性。但是,我正在尝试为所有映射添加一个通用逻辑,以忽略基于某些条件的属性。为此,我正在使用这样的代码。
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
的实例,如何设置要忽略的属性?
答案 0 :(得分:1)
var propInfo = typeMap.DestinationType.GetProperty("PropertyToIgnore");
if (propInfo != null)
{
typeMap.FindOrCreatePropertyMapFor(new AutoMapper.Impl.PropertyAccessor(propInfo)).Ignore();
}
忽略方法用于忽略属性/成员