我有一个界面:
public interface IQueryResult<T> where T : IBaseEntity
{
PageInfo PageInfo { get; }
IEnumerable<T> Payload { get; }
}
实施:
public class QueryResult<T> : IQueryResult<T> where T : IBaseEntity
{
public QueryResult()
{
}
public QueryResult(IEnumerable<T> payload, PageInfo pageInfo)
{
Payload = payload;
PageInfo = pageInfo;
}
public QueryResult(IEnumerable<T> payload)
{
Payload = payload;
}
public IEnumerable<T> Payload { get; private set; }
public PageInfo PageInfo { get; private set; }
}
映射器配置:
CreateMap<EntityA, DtoA>();
CreateMap<DtoA, EntityA>();
CreateMap<EntityB, DtoB>();
CreateMap<DtoB, EntityB>();
CreateMap(typeof(IQueryResult<>), typeof(IQueryResult<>));
然后,我想在控制器中执行此操作:
IQueryResult<EntityA> entities = service.GetAll();
IQueryResult<DtoA> result = _mapper.Map<IQueryResult<DtoA>>(entities);
当前,它没有中断,但是问题在于,由于属性具有私有设置器,因此目标的属性为null
我需要某种方式来告诉它如何映射属性或使用我猜的构造函数
如果有人遇到这个问题,我会设法解决的,我将在这里留此: