Der Dienst für den Typ „Swashbuckle.AspNetCore.Swagger.ISwaggerProvider“ kann nur bei Verwendung von Unity Dependency InC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Der Dienst für den Typ „Swashbuckle.AspNetCore.Swagger.ISwaggerProvider“ kann nur bei Verwendung von Unity Dependency In

Post by Anonymous »

Ich arbeite an einer ASP.NET Core-Anwendung und integriere Swagger mit

Code: Select all

Swashbuckle.AspNetCore
. Mein Projekt verwendet Unity als Abhängigkeitsinjektionscontainer (DI) anstelle des standardmäßigen ASP.NET Core DI. Beim Versuch, die Swagger-Benutzeroberfläche zu laden oder API-Aufrufe durchzuführen, tritt jedoch der folgende Fehler auf:

Code: Select all

Unable to resolve service for type 'Swashbuckle.AspNetCore.Swagger.ISwaggerProvider' while attempting to Invoke middleware 'Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware'.
  • Konfigurierte Unity in Program.cs:

Code: Select all

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();


Problem
Trotz ISwaggerProvider vorhanden erfolgreich durch Unity gelöst, löst die SwaggerMiddleware bei der Verarbeitung von Anfragen den oben genannten Fehler aus.
Umgebung:
  • .NET 8.0
  • Swashbuckle.AspNetCore v7.2.0
  • Unity v5.11.10
  • Unity.Microsoft.DependencyInjection v5.11.5
Lokales Ausführen mit IIS Express.
Fragen:
  • Gibt es bei Swashbuckle.AspNetCore bekannte Probleme bei der Verwendung mit Unity als DI-Container?
  • Gibt es bestimmte Konfigurationen oder Einschränkungen bei der Integration mit Unity? Die Middleware-Pipeline von ASP.NET Core?
  • Wie kann ich sicherstellen, dass ISwaggerProvider von SwaggerMiddleware bei Verwendung von Unity korrekt aufgelöst wird?
Jede Hilfe oder Hinweise zur Lösung dieses Problems wäre sehr dankbar!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post