Site icon Blog ARC Optimizer

Obtenir la valeur de appsettings.json dans .NET Core


Apprenez à récupérer des propriétés ou des valeurs dans appsettings.json dans .NET Core. Nous allons le couvrir en utilisant à la fois IConfiguration et Modèle d'options .

Introduction

Dans cet article, nous allons apprendre comment récupérer des propriétés ou des valeurs dans appsettings.json dans .NET Core. Nous aborderons les sujets suivants:

  • Obtention de valeurs depuis appsettings.json
    • Utilisation de IConfiguration
    • Utilisation de Modèle d'options
  • Conclusion

Obtention de valeurs depuis appsettings.json

Il existe une ou plusieurs façons de récupérer des valeurs du fichier appsettings.json dans. NET Core. Nous allons apprendre les deux façons suivantes:

  • Utilisation de IConfiguration
  • Utilisation de Modèle d'options

Utilisation de IConfiguration

La IConfiguration est disponible en le conteneur d'injection de dépendance (DI), afin que vous puissiez accéder directement aux propriétés JSON en injectant simplement IConfiguration dans le constructeur d'un contrôleur ou d'une classe. Il représente un ensemble de propriétés de configuration d'application clé / valeur.

IConfiguration est utilisé comme suit:

  • Créez un projet Web ou API Web simple dans .NET Core
  • Créez un contrôleur ou utilisez celui par défaut [19659016] Définissez une propriété en lecture seule de type IConfiguration et injectez dans votre contrôleur et accédez aux propriétés JSON comme suit:
 namespace FetchAppsettingsValue.Controllers
{
    using Microsoft.AspNetCore.Mvc;
    en utilisant Microsoft.Extensions.Configuration;
    using System.Collections.Generic;

    [Route("api/Configuration")]
    [ApiController]
     Classe publique ConfigurationController: ControllerBase
    {
        lecture seule IConfiguration _config;

        ConfigurationController public (configuration IConfiguration)
        {
            _config = config;
        }

        // GET: api / Configuration
        [HttpGet]
        public IEnumerable  Get ()
        {
            var result = _config.GetValue  ("Logging: LogLevel: Default"); // "Information"
            retourne une nouvelle chaîne [] {result.ToString ()};
        }
    }
}

Utilisation de Modèle d'options

La première option dont nous avons discuté est facile à utiliser, mais si vous souhaitez accéder à plusieurs valeurs, vous devez fournir les clés et afficher les valeurs codées en dur dans les contrôleurs ou les classes partout. Pour accéder à plusieurs valeurs ou hiérarchies / données structurées depuis appsettings.json, Le modèle d'options est une bonne option. Il utilise des classes pour représenter le groupe de paramètres hiérarchiques / structurés.

Le modèle d'options est utilisé comme suit:

  • Créer un simple projet Web ou API Web dans .NET Core
  • Créez un contrôleur ou utilisez celui par défaut
  • Créez une classe pour représenter la hiérarchie / les paramètres structurés (réplique du fichier appsettings.json):
 // appsettings.json
{
"Journalisation": {
"LogLevel": {
  "Par défaut": "Informations",
  "Avertissement": "Avertissement",
  "Erreur": "Erreur"
}
},
"Hôtes autorisés": "*"
}
 // AppSettings.cs
espace de noms FetchAppsettingsValue
{
    classe publique AppSettings
    {
        Journalisation publique Journalisation {get; ensemble; }
        chaîne publique AllowedHosts {get; ensemble; }
    }

    public class Logging
    {
        public LogLevel LogLevel {get; ensemble; }
    }

    Classe public class LogLevel
    {
        chaîne publique Default {get; ensemble; }

        chaîne publique Avertissement {get; ensemble; }

        chaîne publique Erreur {get; ensemble; }
    }
}
  • Enregistrez-vous dans l'instance de configuration dans la classe startup.cs de la méthode ConfigureServices comme suit:
 public void ConfigureServices (services IServiceCollection)
{
    services.Configure  (Configuration.GetSection ("Journalisation"));

    services.AddControllers ();
}
  • Définissez une propriété en lecture seule de type IOptions et injectez dans votre contrôleur et accédez aux propriétés JSON comme suit:
 espace de noms FetchAppsettingsValue.Controllers
{
using Microsoft.AspNetCore.Mvc;
en utilisant Microsoft.Extensions.Options;
using System.Collections.Generic;

[Route("api/Option")]
[ApiController]
 classe publique OptionController: ControllerBase
{
    IOptions privées en lecture seule  _logging; 
 public OptionController (IOptions & lt; Logging & gt; logging)
{
    _logging = journalisation;
}

// GET: api / Option
[HttpGet]
public IEnumerable & lt; string & gt; Avoir()
{
    var result = _logging.Value.LogLevel.Default; // "Information"

    retourne une nouvelle chaîne [] {résultat};
}

}
}

Vous pouvez également télécharger cet exemple à partir de ici .

Conclusion

Dans cet article, nous avons expliqué comment accéder aux paramètres de appsettings.json dans .NET Core à l'aide d'exemples simples. Si vous avez des suggestions ou des questions concernant cet article, veuillez me contacter.

"Apprenez-le, partagez-le."





Source link
Quitter la version mobile