我有以下类和接口定义,并且想使用 EmitMapper 而不是 AutoMapper 从类映射到接口。当前代码有效,但我想使用 EmitMapper,但还没有弄清楚如何使用它。
public interface ITreeViewDTO
{
int Id { get; set; }
string Name { get; set; }
int? Parent_Id { get; set; }
string ExtraData { get; set; }
IEnumerable<ITreeViewDTO> SubNode { get; set; }
}
public class Navigation
{
public int Id { get; set; }
public string Name{ get; set; }
public int? Parent_Id { get; set; }
public virtual IList<Navigation> SubNavigations { get; set; }
}
这是所需映射的当前 AutoMapper 配置:
Mapper.CreateMap<Navigation, ITreeViewDTO>()
.ForMember(dest => dest.SubNode,
opt => opt.MapFrom<IEnumerable<Navigation>>(src => src.SubNavigations));
var iTreeView = Mapper.Map<Navigation, ITreeViewDTO>(root);
上述示例的等效 EmitMapper 代码是什么?