c# - 创建将可变数量的成员映射到一个的映射器
问题描述
我已经成功使用 AutoMapper 一段时间了。我所有的映射都相当简单,因为它们只是将一个属性映射到另一个属性。这个小程序只是使用 System.Xml.Serialization 映射 xml 序列化的属性。
但是,我遇到了需要将许多属性映射到一个属性的情况。
我有一个名为 FieldSample 的对象,它有一个名为 StatesFoundIn 的属性,我将其编写为如下所示:
public class StatesFoundIn
{
[XmlText]
public String StateId { get; set; }
[XmlAttribute("nation")]
public String Purpose
{
get { return "USA"; }
}
public StatesFoundIn(String stateId)
{
StateId = stateId;
}
}
这会生成一行如下所示的 XML:
<StatesFoundIn nation="USA">NY</StatesFoundIn>
AutoMapper 当前映射如下所示:
cfg.CreateMap<Plant, FieldSample>()
.ForMember(d => d.StatesFoundIn, opt => opt.MapFrom(src => src.State))
现在显然这只会返回一个结果。
如果我可以编写一个返回状态数组的方法,有时像“ src.GetAllStates() ”而不是像“ src.State ”那样,有没有办法让映射器返回一个列表或数组字符串,以便如果有多个状态,我的 XML 输出有时看起来像这样?
<StatesFoundIn nation="USA">NY</StatesFoundIn>
<StatesFoundIn nation="USA">PA</StatesFoundIn>
<StatesFoundIn nation="USA">WV</StatesFoundIn>
<StatesFoundIn nation="USA">OH</StatesFoundIn>
解决方案
推荐阅读
- python - Selenium - 网站在使用常规浏览器与 webdriver 时显示不同的值
- r - 数值的 %in% 返回错误的结果
- elasticsearch - 将新文档添加到生产 Elasticsearch 集群
- amazon-web-services - 当父字段不在视觉对象中时,AWS QuickSight 计算字段不显示数据
- bash - 在 shell 脚本中打印字符串的确切值作为输出
- drake - 刷新输出到 drake::log()
- r - 错误:找不到对象“skim_without_charts”
- python - 神经网络中的特征重要性(分类问题)
- html - 更新 HTML/CSS 以使内容显示在右侧而不是下方
- c - 不明白管道是如何工作的。(UNIX 进程之间的共享内存)