Saltar al contenido

Ocurrió un error al intentar crear un controlador de tipo ‘EmployeeController’. Asegúrese de que el controlador tenga un constructor público sin parámetros

Posterior a buscar en diversos repositorios y páginas de internet al terminar nos encontramos con la resolución que te mostramos a continuación.

Solución:

Enterrada en el seguimiento de la pila está la causa raíz del problema:

InvalidOperationException: el tipo actual,BusinessServices.IEmployeeServices, es una interfaz y no se puedeconstruido. ¿Te falta un mapeo de tipos?
———————————————– En el momento de la excepción, el contenedor fue: Resolver TheWork.Controllers.EmployeeController,(ninguno) Resolver el parámetro “employeeServices” del constructor TheWork.Controllers.EmployeeController(BusinessServices.IEmployeeServices employeeServices) Resolver BusinessServices.IEmployeeServices,(ninguno) Microsoft.Practices.Unity. ResolutionFailedException en Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Tipo t, Objeto existente, Nombre de cadena, IEnumerable1 resolverOverrides)

El tema es que el EmployeeController requiere una instancia de IEmployeeServices pero Unity no sabe qué tipo concreto instanciar. Parece que se supone que la clase de implementación debe ser registrada por la llamada a ComponentLoader.LoadContainer(container, ".\bin", "BusinessServices.dll"); pero por alguna razón no se está registrando. Podría ser un error en ese código o tal vez BusinessServices.dll está desactualizado y no contiene el IEmployeeServices definición.

Es difícil decir por qué IEmployeeServices no está registrado sin ver todo el código y las dependencias de tiempo de ejecución (porque los tipos se cargan/registran dinámicamente).

Te invitamos a sustentar nuestra investigación escribiendo un comentario o valorándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *