首页 > 解决方案 > 如何从 WebApiConfig 迁移到 Startup 类(.net core)

问题描述

我正在尝试将一个大项目从ASP.Net Framework迁移到ASP.NetCore。这是我第一次这样做。

我一直在为自己研究,我或多或少地看到了这些步骤。Microsoft Doc分步指南

我发现的第一个麻烦是从Global.asax, WebApiConfig... 迁移到Startup.cs.

这是我的WebApiConfig

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        if (config != null)
        {
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                 "DefaultApi",
                 "api/{controller}/{id}",
                 new {id = RouteParameter.Optional}
                );

            config.DependencyResolver = new AutofacWebApiDependencyResolver(ServiceBootStrapper.BootStrapper.Container);
            var logger = (ILog)config.DependencyResolver.GetService(typeof(ILog));
            config.Services.Add(typeof(IExceptionLogger), new GlobalExceptionLogger(logger));
        }

        config.InitializeCustomWebHooks();
        config.InitializeCustomWebHooksSqlStorage();
        config.InitializeCustomWebHooksApis();
    }       
}

我知道当您迁移到 .net 核心时,您可以使用 public void ConfigureServices(IServiceCollection services)添加依赖注入和服务。也可以public void Configure(IApplicationBuilder app, IWebHostEnvironment env)用于中间件、自定义中间件...等

所以,我创业的第一个方法:

public class Startup
{

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc(options => options.EnableEndpointRouting = false);       
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }


        app.UseStaticFiles();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
        });
    }
} 

但我不知道如何继续。我有几个问题

我能做什么?

我要添加自定义中间件吗?

怎么样config.DepencencyResolver?我可以使用 nativeDepency Inyection还是必须使用Autofac

我真的迷失了。

标签: c#asp.netasp.net-mvcasp.net-core

解决方案


    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

您可以在configure方法中添加所有配置


推荐阅读