Autofac无法在.NET Core 2.1控制台应用程序中解析UseWebApi或UseAutofacWebApi

时间:2018-12-10 00:30:40

标签: asp.net-web-api asp.net-web-api2 autofac asp.net-core-webapi

我已经创建了.NET Core控制台应用程序,打算在其中托管Web api,并使用TopShelf将其包装在Windows服务中

我的Web前端中有一个Web API,因此我已对此应用程序进行了修改

大多数集成都很简单-只需添加添加软件包即可

但是,我迷住了

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

即使我已经安装了软件包(AutoFac.Owin和AutoFac.Mvc5),它仍然无法解决

完整代码如下

using System.Web.Http;
using Autofac;
using Autofac.Integration.WebApi;
using Owin;

public partial class Startup
{
    private void ConfigureWebApi(IAppBuilder app)
    {
        var config = new HttpConfiguration();
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "ControllerOnly",
            routeTemplate: "api/{controller}"
        );

        config.Routes.MapHttpRoute(
            name: "ControllerAndAction",
            routeTemplate: "api/{controller}/{action}"
        );

        config.Routes.MapHttpRoute(
            name: "ControllerAndId",
            routeTemplate: "api/{controller}/{id}",
            defaults: null
        );

        config.DependencyResolver = new AutofacWebApiDependencyResolver(_container);
        app.UseAutofacMiddleware(_container);
        app.UseAutofacWebApi(config);
        app.UseWebApi(config);
    }

    partial void ConfigureAutofacForWebApi(ContainerBuilder builder)
    {
        builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
    }
}

我在做什么错了?

保罗

0 个答案:

没有答案