为简化起见,在源Device.cs中,我具有:
using Assisticant.Collections;
(...)
private ObservableList<Result> _results = new ObservableList<Result>();
public IEnumerable<Result> Results
{
get { return _results; }
}
public void AddResult(Result result)
{
_results.Add(result);
}
目标DeviceDto.cs为:
public List<Result> Results { get; set; }
我应该如何配置Automapper,以实现从源到目标的简单直接映射,并同时通过.AddResult(result)
函数对每个元素进行反向映射?(由于使用的库目的,我必须以这种方式添加元素)
我应该添加到:
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Device, DeviceDto>().ReverseMap();
});
_mapper = new Mapper(config);
不使用ReverseMap()
,而是显式配置从DeviceDto
到Device
的映射。
因为Device.Results
仅定义了一个吸气剂,所以它会在映射步骤中被AutoMapper忽略。如果需要同时访问源和目标,请使用AfterMap
方法。
您可以使用AfterMap
: