Um auf Konfigurationsdaten zuzugreifen, die in der Datei appsettings.json in ASP.NET Core gespeichert sind, können Sie den Konfigurations-Builder oder den Optionsmodus verwenden.
Methode 1: Verwenden Sie ConfigurationBuilder.GetValue
Methode 2: ConfigurationBinder verwenden
1. Konfigurationsklasse definieren
2. Konfigurationsinstanz registrieren
3. Inject IOptions
appsettings.json:
<code class="language-json">{ "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=MyDatabase" }, "AppIdentitySettings": { "User": { "RequireUniqueEmail": true }, "Password": { "RequiredLength": 8 } } }</code>
Startup.cs:
<code class="language-csharp">public void ConfigureServices(IServiceCollection services) { var connectionStringSection = Configuration.GetSection("ConnectionStrings"); services.Configure<ConnectionStringSettings>(connectionStringSection); var appIdentitySettingsSection = Configuration.GetSection("AppIdentitySettings"); services.Configure<AppIdentitySettings>(appIdentitySettingsSection); }</code>
Controller.cs:
<code class="language-csharp">public class HomeController : Controller { private readonly AppIdentitySettings _appIdentitySettings; public HomeController(IOptions<AppIdentitySettings> appIdentitySettings) { _appIdentitySettings = appIdentitySettings.Value; } public IActionResult Index() { var requiredLength = _appIdentitySettings.Password.RequiredLength; // ... } }</code>
Bitte beachten Sie, dass Sie für ConnectionStringSettings
und AppIdentitySettings
im obigen Codeausschnitt die entsprechenden C#-Klassen definieren müssen, damit sie mit der Struktur in appsettings.json
übereinstimmen. Diese beiden Methoden bieten flexible Möglichkeiten für den Zugriff auf Ihre Anwendungskonfiguration. Welche Methode Sie wählen, hängt von Ihren Vorlieben und der Komplexität Ihrer Anwendung ab.
Das obige ist der detaillierte Inhalt vonWie greife ich in ASP.NET Core auf Konfigurationswerte von appsettings.json zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!