如何在Automapper中获取映射字段?

我正在使用Automapper。这样,我将创建一个如下所示的自动映射器配置文件:

  public MappingProfile()
  {
      CreateMap<Users,UserDetails>()
            .ForMember(destination => destination.IsUser,options => options.MapFrom(src => src.RoleId == 1))
            .ForMember(o => o.UserId,b => b.MapFrom(z => z.Id))
            .ReverseMap();
  }

用户

public class Users
{
  public int Id { get; set; }
  public int RoleId { get; set; }
  public string Name { get; set; }
}

用户详细信息

public class UserDetails
{
   public int UserId { get;set; }
   public bool IsUser { get; set; }
   public string Name { get; set; }
}

在模型类User.cs中,我需要获取映射字段。即UserId类中UserDetails的{​​{1}}中的Id映射。如何在automapper中采取这种方式? (或者)还有其他方法可以做到吗?

dahom 回答:如何在Automapper中获取映射字段?

解决方案:

在模型类User.cs中,

  private readonly IMapper mapper;


   var mappingFields = mapper.ConfigurationProvider.FindTypeMapFor(typeof(Users),typeof(UserDetails));
   var propertyMapList = mappingFields.PropertyMaps.ToList();

   foreach (var item in propertyMapList)
   {
       ----------------
       var mappingField = item.SourceMember.Name;  ---> Here,we get the source field name. i.e) Id
   }

这对我有用。

本文链接:https://www.f2er.com/3162204.html

大家都在问