使用OWIN集成的Autofac调用错误的构造函数

时间:2016-11-20 13:03:36

标签: c# owin autofac

我正在尝试让控制器类使用记录器,使用Autofac。

控制器有2个构造函数,一个带有0个参数,另一个带有1个。

我尽可能地跟随this example,但由于某种原因,每次都会调用0参数构造函数。

我的代码:

        var config = new HttpConfiguration();
        var builder = new ContainerBuilder();

        builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
        builder.Register(c => new Logger()).As<ILogger>().InstancePerRequest();

        var container = builder.Build();
        config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

        app.UseAutofacMiddleware(container);
        app.UseAutofacWebApi(config);
        app.UseWebApi(config);


  this.ConfigureAuth(app);

控制器的构造函数:

    private readonly ILogger _logger;

    public MailController()
    {

    }

    public MailController(ILogger logger)
    {
        this._logger = logger;
    }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

解决:

问题是我为OWIN selfhost做了一个例子,虽然我的项目不是一个。

  

var config = new HttpConfiguration();

应该已被

行替换
  

var config = GlobalConfiguration.Configuration;

希望这有助于某人!