Castillo Windsor con múltiples constructores
Actualmente estoy realizando una conversión, del uso de Ninject, a la versión actual de Castle Windsor para una aplicación simple de C # .NET.
En su mayor parte, la conversión ha ido bien y la implementación de los contenedores se ha ejecutado a la perfección. Sin embargo, estoy teniendo un pequeño problema con mis objetos del repositorio.
Tengo un objeto de repositorio de usuario que está codificado de la siguiente manera:
public class UserRepository : IUserRepository {
public UserRepository(IObjectContext objectContext) {
// Check that the supplied arguments are valid.
Validate.Arguments.IsNotNull(objectContext, "objectContext");
// Initialize the local fields.
ObjectContext = objectContext;
}
public UserRepository(IObjectContextFactory factory)
: this(factory.CreateObjectContext()) {
}
// -----------------------------------------------
// Insert methods and properties...
// -----------------------------------------------
}
Para corresponder a este código, he configurado las siguientes entradas en el archivo de configuración de mi aplicación:
<castle>
<components>
<component id="objectContextFactory" lifestyle="custom"
customLifestyleType="Common.Infrastructure.PerWebRequestLifestyleManager, Common.Castle"
service="Project.DAL.Context.IObjectContextFactory, Project.DAL.LINQ"
type="project.DAL.Context.ObjectContextFactory, Project.DAL.LINQ">
</component>
<component id="userRepository" lifestyle="custom"
customLifestyleType="Common.Infrastructure.PerWebRequestLifestyleManager, Common.Castle"
service="Project.BL.Repository.IUserRepository, Project.BL"
type="Project.BL.Repository.UserRepository, Project.BL.LINQ">
<parameters>
<factory>${objectContextFactory}</factory>
</parameters>
</component>
</components>
</castle>
Para mí, todo parece que debería. Cuando intento resolver una instancia del servicio IObjectContextFactory, recupero un objeto ObjectContextFactory. Mi problema surge cuando intento resolver una instancia del servicio IUserRepository. Me tratan la siguiente excepción encantadora:
No se puede crear el componente 'userRepository' ya que tiene dependencias que satisfacer. userRepository está esperando las siguientes dependencias:
Servicios:
- SandCastle.DAL.Context.IObjectContext which was not registered.
He intentado todo lo que puedo pensar en esto. Entonces, para ustedes, lectores de stackoverflow, les digo: ¿tienen alguna idea?