domingo, 19 de noviembre de 2017

Corrigiendo el error de ASP.NET MVC 5 y Sql Injector con individual User Account en el AccountController

En este post vamos a aprender a solucionar un problema de Simple Injector cuando lo instalamos con una aplicación de ASP.NET MVC 5 con la opción de Individual User Accounts activada. Este error lo podemos solucionar en un minuto.

Si instalamos Simple Injector en una aplicación con estas características, tendremos el siguiente error cuando intentemos correr la aplicación:

For the container to be able to create AccountController it should have only one public constructor: it has 2. See https://simpleinjector.org/one-constructor for more information.

La razón de que ocurra este error es que nuestro AccountContoller tiene más de un constructor, a saber, un constructor vacío, y uno con dependencias. A Simple Injector no le gusta mucho esto y por eso nos arroja el error.

Vamos a realizar una rápida configuración de Simple Injector para que ya no nos dé este error.

1 - Abre tu clase SimpleInjectorInitializer (o donde hagas la configuración de Simple Injector)

2- Pega la siguiente clase dentro del archivo:


3 - Ve al método Initialize de la clase SimpleInjectorInitializer

4 - Pega este código debajo de la instanciación del Container:


Ya con esto has solucionado el problema. Prueba corriendo tu aplicación y el error debe de haber desaparecido.

A modo de ejemplo, aquí coloco cómo puede quedar la clase luego de hacer las modificaciones:



1 comentario: