Невозможно разрешить службу для типа «Swashbuckle.AspNetCore.Swagger.ISwaggerProvider» только при использовании внедрениC#

Место общения программистов C#
Ответить
Anonymous
 Невозможно разрешить службу для типа «Swashbuckle.AspNetCore.Swagger.ISwaggerProvider» только при использовании внедрени

Сообщение Anonymous »

Я работаю над приложением ASP.NET Core и интегрирую Swagger с

Код: Выделить всё

Swashbuckle.AspNetCore. В моем проекте в качестве контейнера внедрения зависимостей (DI) используется Unity
вместо стандартного DI ASP.NET Core. Однако при попытке загрузить пользовательский интерфейс Swagger или выполнить какие-либо вызовы API я сталкиваюсь со следующей ошибкой:

Код: Выделить всё

Unable to resolve service for type 'Swashbuckle.AspNetCore.Swagger.ISwaggerProvider' while attempting to Invoke middleware 'Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware'.
  • Настроен Unity в Program.cs:

Код: Выделить всё

var builder = WebApplication.CreateBuilder(args);
var unityContainer = new UnityContainer();

builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddControllers().AddControllersAsServices();
builder.Services.AddControllersWithViews(); // Registers MVC services, including Razor         view engine

UnityConfig.RegisterTypes(unityContainer); //Registers services like below for example
//container.RegisterType();

builder.Host.UseUnityServiceProvider(unityContainer); //If this line removed, it Swagger loads

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.MapControllers(); // Enable routing to controllers

app.Run();


Проблема
Несмотря на то, что ISwaggerProvider успешно разрешено через Unity, SwaggerMiddleware выдает упомянутую выше ошибку при обработке запросов.
Среда:
  • .NET 8.0
  • Swashbuckle.AspNetCore v7.2.0
  • Unity v5.11.10
  • Unity.Microsoft.DependencyInjection v5.11.5
Локальный запуск с использованием IIS Express.
Вопросы:
  • Имеет ли Swashbuckle.AspNetCore известные проблемы при использовании с Unity в качестве контейнера внедрения внедрения?
  • Существуют ли определенные конфигурации или ограничения при интеграции Unity с Конвейер промежуточного программного обеспечения ASP.NET Core?
  • Как обеспечить правильное разрешение ISwaggerProvider с помощью SwaggerMiddleware при использовании Unity?
Будем очень признательны за любую помощь или подсказки по решению этой проблемы!

Подробнее здесь: https://stackoverflow.com/questions/793 ... aggerprovi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»