这个需要一点解释。我有一组这样的类型;
public class Child
{
public int ID { get; set;}
}
public class MayHaveChild
{
public Child Value { get; set; }
public int MayID { get; set; }
}
public class MustNotHaveChild { get; set; }
{
public List<MayHaveChild> MayValues { get; set; }
}
在上面的场景中,当我映射MayHaveChild
时,我希望Child
的任何映射都包含MustNotHaveChild
对象的值,除了。 E.g;
当我有
时//...some code
MayHave obj = Mapper.Map<MayHaveChild>(childObj);
// I want to be able to access obj.Child.ID
但是当我有
时//...some code
MustNotHave obj = Mapper.Map<MustNotHaveChild>(notHaveObj);
// I want to be able to access obj.MayValues[0].MayID but
// *not* obj.MayValues[0].Value
我已经完成了关于嵌套,多态,列表等的自动播放器文档,我找不到任何与我想要的完全匹配的内容。
我可以通过将MayHave类继承到MustNotHave变体来解决这个问题,但这将涉及更改相当多的现有代码。有没有办法以我需要的方式配置Automapper?
答案 0 :(得分:0)
我找不到一种方法来配置AutoMapper,而不是按照我想要的方式配置AutoMapper,尽管事实证明这比我想象的要少。我做了类似下面的事情;
public class NoChild : MayHaveChild
{
}
public class MustNotHaveChild { get; set; }
{
// \/--datatype change here
public List<NoChild> MayValues { get; set; }
}
然后,稍后在AutoMapper配置中;
Mapper.CreateMap<MayHave, NoChild>()
.ForMember(c => c.Child, opt => opt.Ignore());