Asp.net mvc 4 Autofac v3、Web Api和授权属性

Asp.net mvc 4 Autofac v3、Web Api和授权属性,asp.net-mvc-4,asp.net-web-api,autofac,Asp.net Mvc 4,Asp.net Web Api,Autofac,我有一个Mvc控制器和WebAPI控制器的项目。 所有设备均使用autofac 3连接: var builder = new ContainerBuilder(); builder.Register(x => NHibernateConfigurator.BuildSessionFactory()).SingleInstance(); builder.Register(x => x.Resolve<ISessionFactory>().Op

我有一个Mvc控制器和WebAPI控制器的项目。 所有设备均使用autofac 3连接:

var builder = new ContainerBuilder();
        builder.Register(x => NHibernateConfigurator.BuildSessionFactory()).SingleInstance();
        builder.Register(x => x.Resolve<ISessionFactory>().OpenSession()).InstancePerHttpRequest();
        builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());

        builder.Register(x => new WebApiTransactionAttribute()).PropertiesAutowired();

        builder.RegisterControllers(Assembly.GetExecutingAssembly());
        builder.RegisterApiControllers(Assembly.GetExecutingAssembly());



        builder.RegisterType<ExtensibleActionInvoker>().As<IActionInvoker>();
        builder.RegisterWebApiFilterProvider(config);

        var container = builder.Build();

        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
有人能给我指出正确的方向吗


谢谢。

抱歉,这有点像猜测,但是
AnyConcreteTypeNotAlreadyRegisteredSource
看起来注册范围太广:

为尚未在容器中注册的任何混凝土类型提供动态注册

Autofac过滤器提供程序可能会注册各种框架具体类型并陷入混乱


如果你把这个拿出来,进行更有针对性的注册,可能会有所帮助,也许可以按惯例注册。

同意-尝试删除它,看看会发生什么。嗨,很抱歉回答得太晚。不,删除它不起作用,我仍然得到相同的错误。问题是我也有没有接口的类,但我也想注入这些类。我如何通过约定来配置它?过了一段时间,我回到这里,意识到我可以使用第二个构造函数过滤AnyConcreteTypeNotAlreadyRegisteredSource注册的类型。谢谢,这还是个问题吗?删除任何混凝土类型NotalReadyRegisteredSource有效吗?
Cannot choose between multiple constructors with equal length 1 on type 'System.String'. 
Select the constructor explicitly, with the UsingConstructor() configuration method, when the component is registered.