我在尝试使用AutoMapper和 C# 将类映射到派生类时遇到了一个非常愚蠢的问题。
这些是我的课:
class BaseParent {
public string Name { get; set; }
public BaseChild Child { get; set; }
}
class BaseChild {
public int Age { get; set; }
}
class DerivedParent : BaseParent {
public new DerivedChild Child { get; set; }
}
class DerivedChild : BaseChild { }
特别是,我想要实现的是正确设置了映射类的所有属性。问题是Child
映射类的属性未设置并保持为null。
这是我正在使用的映射配置:
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<BaseChild, DerivedChild>();
cfg.CreateMap<BaseParent, DerivedParent>()
.ForMember(dest => dest.Child, opt => opt.MapFrom(src => src.Child));
});
任何帮助表示赞赏。
谢谢
编辑
实际上说Child
属性保持为null是不正确的。调试代码我可以看到有 2 个同名的子属性,因为new
用于隐藏父属性的修饰符。
无论如何,我需要的属性仍然是null。