作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这些业务类:
class BaseNode
{
public string name;
}
class CompositeNode : BaseNode
{
public List<BaseNode> childs = new List<BaseNode>();
}
还有这个扁平的 dto:
class NodeDto
{
public string name;
public List<NodeDto> childs;
}
(注意所有派生类型如何由一个 dto 类表示)
我使用 auto mapper进行转换:
Mapper.CreateMap<BaseNode, NodeDto>()
.Include<CompositeNode, NodeDto>()
.ForMember(s => s.childs, prop => prop.Ignore());
Mapper.CreateMap<CompositeNode, NodeDto>();
Mapper.AssertConfigurationIsValid();
var root = new CompositeNode() { name = "root" };
var child = new CompositeNode {name = "child"};
var child2 = new CompositeNode { name = "child2" };
root.childs.Add(child);
child.childs.Add(child2);
var rootDto = Mapper.Map<CompositeNode, NodeDto>(root);
但是下面的总是空的,而不是有子列表:
rootDto.childs[0].childs
(即只有一级 child 被正确映射)
如果我删除 prop.Ignore 部分,我会收到一个断言错误,指出未映射 childs 属性。
我做错了什么?
最佳答案
这是旧的,但在寻找其他东西时遇到了它......你告诉它忽略 child 的领域。 AutoMapper 正在执行它被告知要做的事情。
.ForMember(s => s.childs, prop => prop.Ignore());
关于c# - AutoMapper 的多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630399/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!