无法构造DbConnection

时间:2012-03-26 07:32:14

标签: asp.net asp.net-mvc-3 unity-container

在尝试使用unity时,我面临一个奇怪的异常。

“无法构造类型DbConnection。您必须配置容器以提供此值”

首先,我用Google搜索了这个,但找不到任何此类异常细节。它已经有一段时间了,我正在尝试调试它,所以任何人都可以在这里指导我。

更新:我的容器配置

        var connectionString=ConfigurationManager.ConnectionStrings["CaresDbEntities"].ConnectionString;

        var container = new UnityContainer();            
        container.RegisterInstance<IUnityContainer>(container);  

        #region new repository n UnitOfwork configuration
        container
            .RegisterType(typeof(IRepository<>), typeof(Repository<>))
            .RegisterType(typeof(IService<>), typeof(CrudService<>))   //yet to be tested
            .RegisterType<CaresDbEntities>(new HierarchicalLifetimeManager(), new InjectionConstructor(connectionString))
            .RegisterType<DbContext, CaresDbEntities>()
            .RegisterType<IUnitOfWork, CaresDbEntities>();


        #endregion


        container.RegisterType<IUserService, UserService>();
        container.RegisterType<IRoleService, RoleService>();
        container.RegisterType<IMenuService, MenuService>();
        container.RegisterType<IUserFunctionService, UserFunctionService>();
        container.RegisterType<IFormsAuthentication, FormAuthenticationService>();

        var testContainter = container.Resolve<DbContext>();
        var testService1 = container.Resolve<IFormsAuthentication>();
        var testService2 = container.Resolve<IUserService>();
        var testService3 = container.Resolve<IMenuService>();

此异常出现在第3行和第4行代码中。提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为IUserService和/或IMenuService的具体实现需要在其构造函数中具体DbConnection或者需要它的依赖项。所以请仔细检查你的构造函数 如果你真的需要使用DbConnection,你必须在容器中注册它。