Pregunta

Estoy usando AutoFac con MVC4, pero de alguna manera al intentar resolverlo falla.No recibo ningún error durante las registraciones.El código se ve así:

    public void Register()
    {
        List<Assembly> assemblies = new List<Assembly>();
        assemblies.Add(Assembly.Load("KidsWear.DataLayer"));
        assemblies.Add(Assembly.Load("KidsWear.Repositories"));
        assemblies.Add(Assembly.Load("KidsWear.Contexts"));
        assemblies.Add(Assembly.Load("KidsWear.Entities"));
        assemblies.Add(Assembly.GetExecutingAssembly());

        var builder = new ContainerBuilder();
        builder.RegisterAssemblyTypes(assemblies.ToArray()).AsImplementedInterfaces();
        builder.RegisterControllers();
        //builder.RegisterControllers(Assembly.GetExecutingAssembly());
        var container = builder.Build();
        // test -> isRegistered  returns fals
        var isRegistered = container.IsRegistered(typeof(IProductRepository));
        // This line raises error: The requested service //KidsWear.Repositories.IProductRepository' has not been registered. 
        var concrete = container.Resolve<IProductRepository>();
        // End test
        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
    }

Tengo todas mis interfaces dentro de "Kidswear.Repositories", la implementación real está dentro de "Kidswear.datalayer", "Kidswear.Contexts" tiene el repositorio y contexto genéricos.La interfaz de producción de producción se ve como abajo:

public interface IProductRepository : IGenericRepository<Product>
{

}

El repositorio de productos se here la heredación de genericRepository y iProducTrepositorySity, como este:

public class ProductRepository : GenericRepository<Product>, IProductRepository
{
    public ProductRepository()
    {

    }

    //Todo: add any extra subs specific to Product
}

¿Puede alguien decirme por qué este registro no funciona y qué es este error?Simplemente en el modo de depuración si se muevo en el contenedor, puedo ver que se ha inicializado.

Muchas gracias

¿Fue útil?

Solución

Este código exacto funcionó perfectamente bien.En realidad no estoy seguro de cuál era el problema.¡No estoy seguro si Visual Studio necesitaba un reinicio o autofac estaba jugando mal !!!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top