У меня есть следующие определения класса и интерфейса, и я хотел бы использовать 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 для приведенного выше примера?