Dans appsettings.json
{
"MyArray": [
"str1",
"str2",
"str3"
]
}
Dans Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(Configuration);
}
Dans HomeController
public class HomeController : Controller
{
private readonly IConfiguration _config;
public HomeController(IConfiguration config)
{
this._config = config;
}
public IActionResult Index()
{
return Json(_config.GetSection("MyArray"));
}
}
Il y a mes codes ci-dessus, j'ai obtenu null Comment obtenir le tableau?
"Clients": [ {..}, {..} ]
, vous devez appelerConfiguration.GetSection("Clients").GetChildren()
."Clients": [ "", "", "" ]
, vous devez appeler.GetSection("Clients").GetChildren().ToArray().Select(c => c.Value).ToArray()
.var clients = Configuration.GetSection("Clients").GetChildren() .Select(clientConfig => new Client { ClientId = clientConfig["ClientId"], ClientName = clientConfig["ClientName"], ... }) .ToArray();
Vous pouvez installer les deux packages NuGet suivants:
Et puis vous aurez la possibilité d'utiliser la méthode d'extension suivante:
la source
_config.GetSection("AppUser").Get<AppUser[]>();
Ajoutez un niveau dans votre appsettings.json:
Créez une classe représentant votre section:
Dans la classe de démarrage de votre application, liez votre modèle et injectez-le dans le service DI:
Et dans votre contrôleur, récupérez vos données de configuration auprès du service DI:
Vous pouvez également stocker l'intégralité de votre modèle de configuration dans une propriété de votre contrôleur, si vous avez besoin de toutes les données:
Le service d'injection de dépendances d'ASP.NET Core fonctionne comme un charme :)
la source
MySettings
dans Startup?Si vous avez un tableau d'objets JSON complexes comme celui-ci:
Vous pouvez récupérer les paramètres de cette façon:
la source
Cela a fonctionné pour moi pour renvoyer un tableau de chaînes de ma configuration:
Ma section de configuration ressemble à ceci:
la source
Pour le cas du retour d'un tableau d'objets JSON complexes à partir de la configuration, j'ai adapté la réponse de @ djangojazz pour utiliser des types anonymes et dynamiques plutôt que des tuples.
Étant donné une section de paramètres de:
Vous pouvez renvoyer le tableau d'objets de cette façon:
la source
Une sorte de vieille question, mais je peux donner une réponse mise à jour pour .NET Core 2.1 avec les normes C # 7. Disons que j'ai une liste uniquement dans appsettings.Development.json telle que:
Je peux les extraire partout où la configuration Microsoft.Extensions.Configuration.IConfiguration est implémentée et câblée comme ceci:
Maintenant, j'ai une liste d'objets bien typés qui sont bien typés. Si je vais à testUsers.First (), Visual Studio devrait maintenant afficher les options pour le 'UserName', 'Email' et 'Password'.
la source
Dans ASP.NET Core 2.2 et versions ultérieures, nous pouvons injecter IConfiguration n'importe où dans notre application, comme dans votre cas, vous pouvez injecter IConfiguration dans HomeController et l'utiliser comme ceci pour obtenir le tableau.
la source
Vous pouvez obtenir le tableau directement sans incrémenter un nouveau niveau dans la configuration:
la source
Forme courte:
Il renvoie un tableau de chaîne:
la source
Cela a fonctionné pour moi; Créez un fichier json:
Ensuite, définissez une classe qui mappe:
paquets nuget:
Ensuite, chargez-le:
la source