.NET Core Tipp: Absoluten Verzeichnispfad zu wwwroot ermitteln

Problem

Für die Bildoptimierung der statischen Dateien der .NET User Group Seite setzen wir Magick.NET ein. Für den Zugriff ist der absolute Verzeichnispfad nötig. Im klassischen Framework lässt sich der Ansatz mit System.Reflection.Assembly.GetExecutingAssembly() nutzen.

Aktion

In .NET Core bis 3.0 kann das Interface IWebhostingEnvironent ab .NET Core 3.0 das Interface IWebHostEnvironment genutzt werden.

Über den Konstruktor das Interface injizieren:

public class <Name>Controller : Controller
{
    private readonly IWebHostEnvironment webHostEnvironment;

    public <Name>Controller(IWebHostEnvironment webHost)
    {
        this.webHostEnvironment = webHost;
        var wwwroot = this.webHostEnvironment.WebRootPath;
    }
}

Mit der Eigenschaft WebRootPath wird der absolute Pfad verfügbar.

Resultat

Der absolute Pfad zu den statischen Dateien im wwwroot-Verzeichnis ist verfügbar.