Usando MembershipProvider con el Castillo de Windsor
Frecuentes
Visto 175 veces
0
Estoy implementando Windsor Container MembershipProvider con una clase. Puedo resolver la implementación, pero no llama al método Initialize que extrae los valores de web.config. ¿Cómo puedo instanciar eso y asegurarme de que llame al método Initialize?
Código para agregar al contenedor
container.Register(Component.For<FNHMembershipProvider>()
.LifeStyle.Transient
.Named("myMembershipProvider"));
container.Register(Component.For<FNHRoleProvider>()
.LifeStyle.Transient
.Named("myRoleProvider"));
1 Respuestas
0
Un punto clave aquí es que no está inyectando la clase de Membresía, está inyectando el PROVEEDOR de Membresía. La clase de Membresía es lo que instancia el proveedor de membresía en función de sus entradas de registro y las llamadas se inicializan. La clase de Membresía es una clase estática, y no puede inyectarla (aunque podría inyectar una clase contenedora que devuelva la clase de Membresía estática, pero no veo mucho beneficio allí).
En general, creo que es mucho más doloroso de lo que vale la pena tratar de hacer que la membresía use DI.
contestado el 03 de mayo de 12 a las 21:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas asp.net asp.net-mvc-3 castle-windsor membership-provider or haz tu propia pregunta.
Sin embargo, tengo que usar DI según mis requisitos. Entonces, ¿crearía el contenedor, lo inyectaría en mi controlador y luego llamaría ese contenedor a GetUser, crearía un usuario, etc.? - Reacción21
Sí, ese es el camino a seguir. Supongo que ese es el enfoque que encuentra en el esqueleto de la aplicación que se envía con la plantilla VS para la aplicación mvc3. La plantilla no usa DI, pero es muy fácil averiguar cómo cambiar a DI. - Crixo