我正在尝试让控制器类使用记录器,使用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;
}
我做错了什么?
答案 0 :(得分:0)
解决:
问题是我为OWIN selfhost做了一个例子,虽然我的项目不是一个。
行
var config = new HttpConfiguration();
应该已被
行替换var config = GlobalConfiguration.Configuration;
希望这有助于某人!