Antwort

12

Die statische Klasse ConfigurationManager ist im Allgemeinen nicht in ASP.NET Core verfügbar. Stattdessen sollten Sie das neue ConfigurationBuilder System und die stark typisierte Konfiguration verwenden.

Zum Beispiel ist standardmäßig eine Konfiguration in Ihrer Startup Klasse aufgebaut etwas mit ähnlich der folgenden:

public Startup(IHostingEnvironment env) 
{ 
    var builder = new ConfigurationBuilder() 
     .SetBasePath(env.ContentRootPath) 
     .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
     .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
     .AddEnvironmentVariables(); 
    Configuration = builder.Build(); 
} 

Diese Konfiguration aus der appsettings.json Datei geladen wird, und die Tasten, um die Konfiguration root anhängen. Wenn Sie ein AppSettings-Datei haben, wie folgt aus:

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
    "Default": "Debug", 
    "System": "Information", 
    "Microsoft": "Information" 
    } 
    }, 
    "ThreadSettings" : { 
    "MaxThreads" : 4 
    } 
} 

Dann können Sie dann erstellen eine stark ThreadSettings Klasse ähnlich der folgenden getippt:

public class ThreadSettings 
{ 
    public int MaxThreads {get; set;} 
} 

Schließlich können Sie diese stark typisierte Einstellungen Klasse binden Ihre Konfiguration, indem Sie Ihrer ConfigureServices Methode eine Methode hinzufügen.

Sie können dann Ihre Einrichtungsklasse von einem beliebigen anderen Ort aus injizieren und darauf zugreifen, indem Sie sie in den Konstruktor einfügen. Zum Beispiel:

public class MyFatController 
{ 
    private readonly int _maxThreads; 
    public MyFatController(ThreadSettings settings) 
    { 
     maxThreads = settings.MaxThreads; 
    } 
} 

Schließlich, wenn Sie wirklich Zugriff auf die zugrunde liegende Konfiguration benötigen, können Sie auch, dass in ConfigureServices injizieren, um es in Ihren Klassen zur Verfügung zu stellen.

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddSingleton(Configuration); 
} 

Sie können mehr über Konfiguration auf dem docs oder lesen variousblogs