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

时间:2015-06-16 23:03:21

标签: c# asp.net-web-api autofac

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

在我的启动课程中,我有以下代码,这些代码直接来自文档Autofac Owin Doco

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

  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();
    }


}

调用启动类并且没有任何问题但是当我尝试点击控制器时我得到了

  

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

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

0 个答案:

没有答案
相关问题