C# Autofac与Owin/WebApi集成失败,无参数构造函数

C# Autofac与Owin/WebApi集成失败,无参数构造函数,c#,asp.net-web-api,autofac,C#,Asp.net Web Api,Autofac,我已经设置了一个mvc5.2 webapi项目,并添加了autofac和owin的所有依赖项 在我的startup类中,我有以下直接取自文档的代码 我所做的唯一更改是RegisterApiTypes(builder) 公共类启动 { 公共无效配置(IAppBuilder应用程序) { var builder=new ContainerBuilder(); 注册资本类型(生成器); //标准WEB API设置: //获取您的HttpConfiguration。在OWIN中,您将创建一个 //而不是

我已经设置了一个mvc5.2 webapi项目,并添加了autofac和owin的所有依赖项

在我的startup类中,我有以下直接取自文档的代码

我所做的唯一更改是
RegisterApiTypes(builder)

公共类启动
{
公共无效配置(IAppBuilder应用程序)
{
var builder=new ContainerBuilder();
注册资本类型(生成器);
//标准WEB API设置:
//获取您的HttpConfiguration。在OWIN中,您将创建一个
//而不是使用全局配置。
var config=新的HttpConfiguration();
//注册您的Web API控制器。
RegisterAppController(Assembly.getExecutionGassembly());
//运行其他可选步骤,如注册筛选器,
//每个控制器类型服务等,然后设置依赖项解析器
//是自动传真机。
var container=builder.Build();
config.DependencyResolver=新的AutoFacWebApidencyResolver(容器);
//OWIN WEB API设置:
//首先注册Autofac中间件,然后注册Autofac Web API中间件,
//最后是标准的webapi中间件。
app.useautofac中间件(容器);
app.UseAutofacWebApi(配置);
app.UseWebApi(配置);
}
专用静态无效注册表类型(ContainerBuilder builder)
{
builder.RegisterType()
.As()
.InstancePerRequest();
builder.RegisterType()
.As()
.InstancePerRequest();
}
}
启动类被调用,并且没有任何问题,但是当我尝试点击一个控制器时,我得到了

尝试创建“MyController”类型的控制器时出错。确保控制器具有无参数公共构造函数


我应该以不同的方式设置Startup.cs吗?

您的
电子邮件服务
记录器
都有无参数构造函数吗?您能告诉我们
MyController
的构造函数吗?
  public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var builder = new ContainerBuilder();
        RegisterApiTypes(builder);

        // STANDARD WEB API SETUP:

        // Get your HttpConfiguration. In OWIN, you'll create one
        // rather than using GlobalConfiguration.
        var config = new HttpConfiguration();

        // Register your Web API controllers.
        builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

        // Run other optional steps, like registering filters,
        // per-controller-type services, etc., then set the dependency resolver
        // to be Autofac.
        var container = builder.Build();
        config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

        // OWIN WEB API SETUP:

        // Register the Autofac middleware FIRST, then the Autofac Web API middleware,
        // and finally the standard Web API middleware.
        app.UseAutofacMiddleware(container);
        app.UseAutofacWebApi(config);
        app.UseWebApi(config);
    }

    private static void RegisterApiTypes(ContainerBuilder builder)
    {
        builder.RegisterType<Logger>()
           .As<ILogger>()
           .InstancePerRequest();

        builder.RegisterType<EmailService>()
            .As<IEmailService>()
            .InstancePerRequest();
    }


}