c# - Automapper:忽略继承类的属性
问题描述
我有一个像这样的源类:
public class Basket {}
像这样的目标类:
public class BasketModel
{
public string Property { get; set; }
}
和这样的映射:
Mapper.CreateMap<Basket, BasketModel>()
.ForMember(x => x.Property, o => o.ResolveUsing(x => "anything"));
现在我将原始模型中的“Property”属性设为虚拟,并创建了一个从模型继承的新类:
public class BasketModel
{
public virtual string Property { get; set; }
}
public class BasketModel2 : BasketModel
{
public override string Property
{
get
{
return "some value";
}
}
}
我已经更新了映射:
Mapper.CreateMap<Basket, BasketModel>()
.ForMember(x => x.Property, o => o.ResolveUsing(x => "anything"))
.Include<Basket, BasketModel2>();
并创建了映射
Mapper.CreateMap<Basket, BasketModel2>()
.ForMember(x => x.Property, o => o.Ignore());
现在,当我尝试映射到 BasketModel2 时,null
Property 的值不是 ,而是"anything"
。
我在这里想念什么?
解决方案
好吧,我想我在写这段代码时脑子有问题。model2.Property 永远不会为 null,因为它是一个始终返回相同字符串的 getter。我有一些重构要做,但 AutoMapper 正在做它需要做的事情,我只是用错了。
推荐阅读
- git - Git使用另一个合并策略选项重新合并文件?
- ios - Swift 4:从另一个函数访问 IBAction 发件人?
- javascript - Angular 2+,在下拉更改读取值和加载数据 - json 文件
- angular - ag-grid ng build --prod 失败:超出最大调用堆栈大小
- r - ggplot小提琴图,按组指定不同的颜色?
- python - 如何设置 Django `Debugger` 时间?
- azure - Azure 容器实例一次又一次地失败
- vb.net - PNG文件的每像素比特成本
- html - 为什么填充和边距不起作用?
- javascript - Javascript,将地址字符串传递给 MapQuest API 不起作用