我有以下结构:
public class Destination
{
public Destination()
{
_StringCollection = new List<String>();
}
private ICollection<String> _StringCollection;
public IEnumerable<String> StringCollection
{
get
{
return _StringCollection.AsEnumerable<String>();
}
}
public void AddString(string str)
{
_StringCollection.Add(str);
}
}
public class Source
{
public List<String> StringCollection { get; set; }
}
我想为目标上的源调用 AddString(member) 的每个成员映射它。
我想也许我可以用自定义解析器做一些事情,但似乎无法弄清楚如何做。
您可以使用
AfterMap
为源代码中的每个字符串运行AddString
:
Mapper.Initialize(cfg =>
cfg.CreateMap<Source, Destination>()
.AfterMap((src,dest) => {
foreach (var s in src.StringCollection)
dest.AddString(s);
}));