asp.net - Autofac WebApi 2 OWIN 不工作

标签 asp.net dependency-injection autofac owin asp.net-web-api2

使用 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/

相关文章:

c# - 如何从 autofac 容器解析依赖项(在嵌套 LifetimeScope 中注册)

javascript - 在客户端格式化字符串

asp.net - 如何解决 NHibernate 中批量更新返回意外行计数错误?

java - 需要在单元测试中使用依赖注入(inject) - 我应该使用 junit 还是 testng?

java - 这是依赖注入(inject)的正确用法吗

c# - 具有配置依赖的常用对象

c# - 无参数 Controller 构造函数 Autofac

dependency-injection - DotNet Core 中 AuthorizationOptions 要求的依赖注入(inject)

c# - 遍历目录中的子目录

javascript - ASP.NET <form runat=server> 破坏了 jQuery