es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Usando Automapper en .NET Core 3.1 para resolutores de respuestas.

Estoy intentando migrar del marco completo de .NET a .NET Core 3.1.
En el marco de .NET, estamos usando Automapper v2.2.1 para el mapeo, por lo que en .NET Core también estoy usando la versión Automapper 2.2.1.

Esta línea está en uno de los archivos de mapeo para obtener la respuesta:

Mapper.CreateMap<a, b>()
.ForMember(dest => dest.prop, opt => opt.ResolveUsing().FromMember(src => src));

Este es el archivo Resolver:

public class Resolver : ValueResolver <a, List>
{
private readonly IParamUtil _paramUtil;
private readonly MessageResources _messageResources;
private readonly IParamValue _paramValue;
private readonly IProductDao _productDao;

public Resolver(IParamUtil paramUtil, IParamValue paramValue, IProductDao productDao, MessageResources messageResources)
{
    _paramUtil = paramUtil;
    _paramValue = paramValue;
    _productDao = productDao;
    _messageResources = messageResources;
}

}

Al depurar, estoy obteniendo una excepción como que el archivo de resolución no tiene un constructor predeterminado. Si uso el constructor predeterminado, no obtendré los valores de paramUtil, paramValue, etc.

¿Alguien podría ayudarme con esto?

Gracias de antemano

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que te estás enfrentando a un problema con la clase Resolver que no tiene un constructor predeterminado. Necesitas proporcionar un constructor predeterminado para que Automapper pueda utilizarlo. Puedes hacerlo agregando el siguiente código a la clase Resolver:


    public Resolver()
    {
    _paramUtil = null;
    _paramValue = null;
    _productDao = null;
    _messageResources = null;
    }

    Esto debería permitir que Automapper use la clase Resolver sin problemas.

Comments are closed.