7

Ich habe Swashbuckle Paket zu meinem ASP Core-Projekt hinzugefügt.Get XML-Kommentare Ausgabedatei Speicherort für ASP Core

Ich möchte Swagger für die Verwendung von automatisch generierten VS xml-Kommentare konfigurieren.

Das Problem ist, dass ich nicht die Möglichkeit, diese Position zu erhalten finden:

  1. PlatformServices.Default.Application.ApplicationBasePath - Punkte zum Projekt Wurzelpfad
  2. Directory.GetCurrentDirectory() - die gleichen
  3. Path.GetFullPath(".") - die gleichen
  4. IHostingEnvironment.WebRootPath - das gleiche

Ausgabe Ordner konfigurieren d in <project>.xproj von BaseIntermediateOutputPath Option.

Aber ich kann diesen Ort nicht in Laufzeit bekommen.

var pathToDoc = "????"; 
options.OperationFilter(new Swashbuckle.SwaggerGen.XmlComments.ApplyXmlActionComments(pathToDoc)); 

Bad Lösungen, die ich sehen:

  1. Add Konfigurationsoption AppSettings.json
  2. Relative Pfad vom Projektpfad (wie ich bin Ausgabepfad bin konfigurieren).

Aber ich möchte diese verwenden, um mit Docker, CI, localhost, also denke ich nicht, dass dies die beste Lösung hartcodierte Lösung zu verwenden .. wäre

Antwort

2

Sie können versuchen, die folgenden Funktion zum Abrufen des XML-Dateipfads

Die XML-Datei hat den gleichen Namen wie die App. Ich verwende diesen Code derzeit in meinem Projekt und es funktioniert gut.

+0

funktioniert das im Docker Container? – deeptowncitizen

+0

Ich habe es nicht in Docker Container getestet, aber es funktioniert in Azure, selbst gehostet und IIS (localhost). Idealerweise sollte es auch in Docker funktionieren, da PlatformServices plattformspezifische Informationen unabhängig von der Plattform bereitstellen soll. Wenn Sie testen, lassen Sie uns bitte wissen, wenn es funktioniert. –

+0

Gute Sachen. Wusste nicht, dass "PlatformServices" existiert. – Andrei