zu ändern, verwendet mein Projekt App.config, um Konfigurationseigenschaft zu lesen. Beispiel: ConfigurationManager.AppSettings["MaxThreads"]
Kennen Sie eine Bibliothek, die ich verwenden kann, um Konfiguration von Json zu lesen. Vielen Dank.Wie App.config zu JSON-Konfigurationsdatei in .Net Core
Antwort
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