Обновите Autofac Multitenant с ASP.NET Ядро 2.2 для ASP.NET Ядро 5

#asp.net-core #autofac

#asp.net-ядро #autofac

Вопрос:

У меня есть ASP.NET Приложение Core 2.2, которое в настоящее время использует следующие зависимости:

  • Autofac.AspNetCore.Multitenant версия 1.1.0
  • Autofac.AspNetCore.Extensions версия : 1.0.2

Я хочу обновить приложение с ASP.NET Ядро 2.2 для ASP.NET 5. Из-за нового Generic IHostBuilder и using AutofacServiceProviderFactory я немного растерялся относительно того, как создавать арендаторов в program.cs и добавлять / удалять во время выполнения. В .NET Core 2.2 я делаю это следующим образом:

 var webHost = CreateTenantWebHostBuilder(args)
    .UseAutofacMultiTenant()
    .UseStartup<Startup>()
    .Build();

using (var scope = webHost.Services.CreateScope())
{
    try
    {
        var applicationLifetime = scope.ServiceProvider
            .GetRequiredService<IApplicationLifetime>();
        var tenantStore = scope.ServiceProvider
            .GetRequiredService<ICustomTenantsStore>();

        await tenantStore.InitializeTenantsAsync(applicationLifetime.ApplicationStopping);
    }
    catch (Exception ex)
    {
                       
    }
}

await webHost.RunAsync(cancelTokenSource.Token);
 

Ответ №1:

Я бы рекомендовал потратить некоторое время на изучение некоторых доступных ресурсов.

Вы совершаете значительный скачок с .NET Core 2.2 на 5.0, поэтому вы не сможете оставаться на старых версиях Autofac. Я бы рекомендовал обновить до последней версии — вы получите обновленную поддержку совместимости для .NET 5, исправления ошибок, некоторые улучшения производительности и улучшенную поддержку по устранению неполадок (среди прочего, в последних версиях Autofac и расширений).

Комментарии:

1. Я согласен, что это скачок. Сначала я обновлюсь до версии 3.1 и соответственно обновлю библиотеки Autofac. Просто я был смущен новым универсальным HostBuilder в отношении моей реализации «ITenantIdentificationStrategy».