C# 嵌套对象子类的自动映射展平

C# 嵌套对象子类的自动映射展平,c#,inheritance,interface,nested,automapper,C#,Inheritance,Interface,Nested,Automapper,我正在尝试使用AutoMapper执行以下操作,但没有得到预期的结果 我有以下配置: public interface IFlatInterface { public string A {get; set;} public string B {get; set;} public string C {get; set;} public bool D {get; set;} } public class ParentObject { public Dat

我正在尝试使用AutoMapper执行以下操作,但没有得到预期的结果

我有以下配置:

public interface IFlatInterface
{
    public string A {get; set;}
    public string B {get; set;}
    public string C {get; set;}
    public bool D {get; set;}
}


public class ParentObject 
{
    public Data X {get; set;}
    public Measure Y {get; set;} 
}

public class Data 
{
    public string A {get; set;}
    public string B {get; set;}
}

public class Measure
{
    public string C {get; set;}
    public bool D {get; set;}
}
我已经定义了以下映射规则

cfg.CreateMap<IFlatInterface, ParentObject>()
   .ForMember(p => p.Measure, o => o.MapFrom(f => f))
   .ForMember(p => p.Data, o => o.MapFrom(f => f))

cfg.CreateMap<ParentObject, IFlatInterface>()
   .ForMember(i => i.A, o => o.MapFrom(p => p.X.A))
   .ForMember(i => i.B, o => o.MapFrom(p => p.X.B))
   .ForAllOtherMembers(o => o.MapFrom(p.Y))
cfg.CreateMap()
.ForMember(p=>p.Measure,o=>o.MapFrom(f=>f))
.ForMember(p=>p.Data,o=>o.MapFrom(f=>f))
cfg.CreateMap()
.ForMember(i=>i.A,o=>o.MapFrom(p=>p.X.A))
.ForMember(i=>i.B,o=>o.MapFrom(p=>p.X.B))
.ForAllOtherMembers(o=>o.MapFrom(p.Y))
问题是填充的值是所有剩余字段的字符串“p.Measure”。我希望映射递归地发生在度量值的成员上。我不能提出一个广泛的规则,因为不同的类可以实现IFlatInterface

你知道如何实现这一目标吗


谢谢

看。@LucianBargaoanu谢谢它似乎满足了我的需求。是否在初始化映射程序的过程中调用它?是否有一个示例?
CreateMap().flatte(s=>s.X).flatte(s=>s.Y)
或smth:)它工作正常!感谢您的帮助@LucianBargaoanu