После того как я увидел , как игнорировать тип свойства с помощью Automapper , я попробовал его в тестовом проекте.Оказывается, свойство определенного типа игнорируется должным образом, но при вызове AssertConfigurationIsValid()
выдается исключение, указывающее, что были найдены несопоставленные элементы.Я могу понять причину этого исключения, поскольку члены типа, которые должны игнорироваться, не отображаются, но меня интересует, должны ли эти исключения создаваться в контексте, где я специально удалил отображение.
Для данного кода:
class Type1
{
public int Prop1 { get; set; }
public string Prop2 { get; set; }
public string Prop3 { get; set; }
}
class Type2
{
public int Prop1 { get; set; }
public string Prop2 { get; set; }
public TypeToIgnore Prop3 { get; set; }
}
class MappingProfile : Profile
{
public MappingProfile()
{
ShouldMapProperty = p => p.PropertyType != typeof(TypeToIgnore);
CreateMap<Type2, Type1>();
}
}
//...
var config = new MapperConfiguration(cfg => cfg.AddProfile(new MappingProfile()));
config.AssertConfigurationIsValid(); //this throws AutoMapperConfigurationException
Не будет ли правильным поведение Automapper игнорировать элементы и не создавать исключение при проверке правильности конфигурации, как в случае игнорированиясобственно свойство?
CreateMap<Type2, Type1>().ForMember(x => x.Prop3, y => y.Ignore());