解决 -> 时出现 Autofac 和 MVC4 问题,请检查我的代码



我正在将Autofac与MVC4一起使用,但不知何故,当尝试解决它时失败了。我在注册过程中没有收到任何错误。代码如下所示:

    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));
    }

我所有的接口都在"KidsWear.Repository"中,实际的实现在"KidsWear.DataLayer"中,"KidsWear.Contexts"有通用存储库和上下文。产品存储库界面如下所示:

public interface IProductRepository : IGenericRepository<Product>
{
}

产品存储库继承自 GenericRepository 和 IProductRepository,如下所示:

public class ProductRepository : GenericRepository<Product>, IProductRepository
{
    public ProductRepository()
    {
    }
    //Todo: add any extra subs specific to Product
}

谁能告诉我为什么这个注册不起作用以及这个错误是什么?只是在调试模式下,如果我将鼠标悬停在容器上,我可以看到它已被初始化。

非常感谢

这个确切的代码工作得很好。实际上不确定问题是什么。不确定Visual Studio是否需要重新启动或Autofac播放不佳!!

最新更新