Asp.net mvc 4 Autofac v3、Web Api和授权属性
我有一个Mvc控制器和WebAPI控制器的项目。 所有设备均使用autofac 3连接: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
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.