你什么时候收到错误?是你打电话的时候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和单元测试之类的东西来确保您的映射正常工作。(这是 的意图AssertConfigurationIsValid
)