Ответ 1
Когда вы получаете сообщение об ошибке? Это когда вы вызываете AssertConfigurationIsValid
?
Если да, то просто не вызывайте этот метод
Вам не нужно вызывать этот метод, рассмотрите следующее отображение, которое работает:
public class Foo1
{
public string Field1 { get; set; }
}
public class Foo2
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
Mapper.CreateMap<Foo1, Foo2>();
var foo1 = new Foo1() {Field1 = "field1"};
var foo2 = new Foo2();
Mapper.Map(foo1, foo2);//maps correctly, no Exception
Вы можете вызвать AssertConfigurationIsValid
для других сопоставлений, чтобы убедиться, что они верны, поэтому вместо этого вам необходимо упорядочить ваши сопоставления в профилях:
public class MyMappedClassesProfile: Profile
{
protected override void Configure()
{
CreateMap<Foo1, Foo2>();
//nb, make sure you call this.CreateMap and NOT Mapper.CreateMap
//I made this mistake when migrating 'static' mappings to a Profile.
}
}
Mapper.AddProfile<MyMappedClassesProfile>();
а затем, если вы решите, что хотите проверить правильность сопоставления (в каждом случае в вашей ситуации), вызовите
Mapper.AssertConfigurationIsValid(typeof(MyMappedClassesProfile).FullName);
важно в вашем случае и/или в любом случае, когда вы не вызываете AssertConfigurationIsValid
, вы должны использовать что-то вроде AutoFixture и Unit Test, чтобы обеспечить правильное отображение. (который является намерением AssertConfigurationIsValid
)