C# AutoFac控制器没有默认构造函数

C# AutoFac控制器没有默认构造函数,c#,asp.net-web-api,autofac,C#,Asp.net Web Api,Autofac,嗨,我想从Ninject切换到AutoFac,但我遇到了一些问题。错误是: Controllers.API.Basic.AddressController'没有默认值 建造师 我在启动时注册: var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(Assembly.GetExecutingA

嗨,我想从Ninject切换到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));
var builder=newcontainerbuilder();
RegisterController(Assembly.getExecutionGassembly());
RegisterAppController(Assembly.getExecutionGassembly());
builder.RegisterType().As();
RegisterAssemblyModule(Assembly.getExecutionGassembly());
IContainer容器=builder.Build();
SetResolver(新的AutofacDependencyResolver(容器));
这是我的控制器:

public class AddressController : GenericBaseController<Address>
{
    public AddressController(IBaseRepository<Address> repository)
        : base(repository)
    {
    }
公共类AddressController:GenericBaseController
{
公共地址控制器(IBaseRepository存储库)
:base(存储库)
{
}
我遗漏了什么吗?这对Ninject有效。

找到了:

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

设置此选项后,它起作用了

如果您使用的是webapi,则需要使用:
var resolver=new autofacWebAPI依赖解析程序(容器);//使用依赖解析程序配置Web API。GlobalConfiguration.Configuration.DependencyResolver=resolver;