2014-10-02 47 views
4

嗨我想从Ninject切换到AutoFac,但我遇到了一些问题。错误是:AutoFac控制器没有默认的构造函数

Controllers.API.Basic.AddressController”没有默认的构造函数

我在启动时注册此:

var builder = new ContainerBuilder(); 
builder.RegisterControllers(Assembly.GetExecutingAssembly()); 
builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); 

builder.RegisterType<AddressRepository>().As<IBaseRepository<Address>>(); 

builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly()); 

IContainer container = builder.Build(); 
DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); 

,这是我的控制器:

public class AddressController : GenericBaseController<Address> 
{ 
    public AddressController(IBaseRepository<Address> repository) 
     : base(repository) 
    { 
    } 

我错过了什么吗?这与Ninject合作。

+1

如果你正在使用你需要使用的WebAPI:'VAR解析器=新AutofacWebApiDependencyResolver(容器); //使用依赖关系解析器配置Web API。 GlobalConfiguration.Configuration.DependencyResolver =解析器; https://code.google.com/p/autofac/wiki/WebApiIntegration – nemesv 2014-10-02 06:42:02

回答

5

发现:

// Set the dependency resolver for Web API. 
var webApiResolver = new AutofacWebApiDependencyResolver(container); 
GlobalConfiguration.Configuration.DependencyResolver = webApiResolver; 

后我设置它的工作