使用 OWIN 时遇到 Autofac 和 WebApi2 问题。基本上构造函数没有被注入(inject)。
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "Default Route",
routeTemplate: "{controller}.{ext}"
);
config.Routes.MapHttpRoute(
name: "Default Route with Id",
routeTemplate: "{controller}/{id}.{ext}",
defaults: new { id = RouteParameter.Optional }
);
var builder = new ContainerBuilder();
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.Register(c => new Logger()).As<ILogger>().InstancePerRequest();
var container = builder.Build();
var resolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
app.UseAutofacWebApi(GlobalConfiguration.Configuration);
app.UseWebApi(config);
}
}
public class UsersController : ApiController
{
private readonly ILogger _logger;
public UsersController(ILogger logger)
{
_logger = logger;
}
}
我正在使用 Autofac.Integration.Owin nuget alpha 包。我错过了什么?
最佳答案
尝试自始至终使用config
配置对象。在中间,您切换到GlobalConfiguration
。在 OWIN + Web API 中,您不会使用静态配置对象,而仅使用您在配置 OWIN 应用程序时创建的实例。
关于asp.net - Autofac WebApi 2 OWIN 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23957038/