Как перейти с WebApiConfig на класс запуска (ядро. net) - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь перенести большой проект с ASP. Net Framework на ASP .NetCore . Я делаю это в первый раз.

Я занимался исследованиями для себя и видел шаги более или менее. Microsoft Do c, Пошаговое руководство .

Первая обнаруженная проблема - переход с 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) для промежуточного программного обеспечения, пользовательского промежуточного программного обеспечения ... et c

Итак, первый подход моего запуска:

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.InitializeCustomWebHooksSqlStorage()

  • config.InitializeCustomsWebHooks()

  • config.InitializeCustomWebHooksApis()

Должен ли я добавить пользовательское промежуточное ПО?

Что насчет config.DepencencyResolver? Могу ли я использовать нативный Depency Inyection или мне нужно использовать Autofac?

Я действительно потерян с этим.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Для интеграции Autofa c, прочитайте это .

Что касается веб-хуков, Я не думаю, что ASP. NET замена ядра еще , если кто-то не может найти иное.

Зависит от того, что эти вебхуки на самом деле делают в вашем приложении WebAPI, вы можете реализовать эквивалентное промежуточное ПО для их замены.

Кстати, ваш Запуск. cs не выглядит так современно, как ASP. NET Core 3. Взгляните на этот документ для generi c хостинга в последней версии ASP. NET Core .

0 голосов
/ 14 апреля 2020
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

вы можете добавить всю конфигурацию в методе настройки

...