C# 重用嵌套子对象的自动映射配置

C# 重用嵌套子对象的自动映射配置,c#,automapper,C#,Automapper,我在两个复杂对象之间进行映射,并实现了一个ITypeConverter,我使用它就像 CreateMap<ChildDto, ChildViewModel>().ConvertUsing<ChildConverter>(); …正确映射子属性,但不映射对象的其余部分。或者,我可以使用我现有的 CreateMap<ParentDto, ParentViewModel>().ConvertUsing<ParentConverter>() Cr

我在两个复杂对象之间进行映射,并实现了一个
ITypeConverter
,我使用它就像

 CreateMap<ChildDto, ChildViewModel>().ConvertUsing<ChildConverter>();
…正确映射子属性,但不映射对象的其余部分。或者,我可以使用我现有的

  CreateMap<ParentDto, ParentViewModel>().ConvertUsing<ParentConverter>()
CreateMap().ConvertUsing())

…它映射对象的其余部分,但不映射子属性。在
ParentConverter
中,我可以手动映射子属性,但是可以重用现有的映射逻辑,而不是在两个地方实现相同的东西?

我认为您不需要对ParentDto调用.ForMemeber。Automapper将看到ChildDto类型的属性,并指出它需要将其映射到具有相同名称的ChildViewModel类型的属性。啊,抱歉,我将该示例过于简化,这些属性实际上没有相同的名称。但无论如何,因为我在ParentConverter中有事情要做,AutoMapper不会对孩子们采取行动。这似乎是我的责任,这很好,但我希望避免在这两个地方实现相同的映射。
 CreateMap<ChildDto, ChildViewModel>().ConvertUsing<ChildConverter>();
 CreateMap<ParentDto, ParentViewModel>()
     .ForMember(dest => dest.ChildA, opt => opt.MapFrom(src => src.ChildA)
     .ForMember(dest => dest.ChildB, opt => opt.MapFrom(src => src.ChildB)
  CreateMap<ParentDto, ParentViewModel>().ConvertUsing<ParentConverter>()