C# AutoMapper没有';不要忽略嵌套类型

C# AutoMapper没有';不要忽略嵌套类型,c#,.net,automapper,C#,.net,Automapper,我遇到了一种情况,AutoMapper无法正常工作,忽略了成员。下面是类结构和映射 public class Class1 { public Class2 Class2 { get; set; } } public class Class2 { public List<Class3> class3List { get; set; } } Mapper.CreateMap<Class1, Class1>(); Mapper.CreateMap<

我遇到了一种情况,AutoMapper无法正常工作,忽略了成员。下面是类结构和映射

public class Class1 {
      public Class2 Class2 { get; set; }
}

public class Class2 {
     public List<Class3> class3List { get; set; }
}

Mapper.CreateMap<Class1, Class1>();
Mapper.CreateMap<Class2, Class2>
    .ForMember(dest => dest.class3List, opt => opt.Ignore());
Mapper.CreateMap<Class3, Class3>();
公共类1{
公共类2类2{get;set;}
}
公共课2{
公共列表class3List{get;set;}
}
CreateMap();
Mapper.CreateMap
.ForMember(dest=>dest.class3List,opt=>opt.Ignore());
CreateMap();
当我把一班映射到一班时

Mapper.Map<Class1, Class1>(object1, object2);
Mapper.Map(object1,object2);
在对象2中,class3列表是空的,但在映射之前它有项目。如果我像这样做映射

Mapper.CreateMap<Class1, Class1>();
    .ForMember(dest => dest.Class2, opt => opt.Ignore());
Mapper.CreateMap<Class2, Class2>();
Mapper.CreateMap<Class3, Class3>();
Mapper.CreateMap();
.ForMember(dest=>dest.Class2,opt=>opt.Ignore());
CreateMap();
CreateMap();
它应该忽略Class2属性。
那么,在将Class1映射到Class1时,如何忽略class3List而不清空它呢?

通常,从一种类型的类映射到另一种类型的类。你想在这里实现什么?克隆人

看看API,我认为最好使用UseDestinationValue(),而不是忽略它。虽然我用你的代码测试了它,但它似乎仍然不能工作

 Mapper.CreateMap<ParentFoo, ParentBar>()
     .ForMember(b => b.Child, o => o.UseDestinationValue());
Mapper.CreateMap()
.ForMember(b=>b.Child,o=>o.UseDestinationValue());

通常从一种类型的类映射到另一种类型的类。你想在这里实现什么?克隆人

看看API,我认为最好使用UseDestinationValue(),而不是忽略它。虽然我用你的代码测试了它,但它似乎仍然不能工作

 Mapper.CreateMap<ParentFoo, ParentBar>()
     .ForMember(b => b.Child, o => o.UseDestinationValue());
Mapper.CreateMap()
.ForMember(b=>b.Child,o=>o.UseDestinationValue());

UseDestinationValue是我问题的解决方案,我用不同的方式解决了整个问题。(UseDestinationValue是我问题的解决方案,我用不同的方式解决了整个问题