comment obtenir de la valeur à partir de appsettings.json
public class Bar
{
public static readonly string Foo = ConfigurationManager.AppSettings["Foo"];
}
Dans le .NET Framework 4.x, je peux utiliser le ConfigurationManager.AppSettings ["Foo"]
pour obtenir Foo
dans Webconfig
,et puis je peux facilement obtenir la valeur de Foo
par Bar.Foo
Mais dans .Net core, je mustto injecter options
Et ne peut pas obtenir la valeur de Foo
par Bar.Foo
Est-il une méthode, qui peut être directement par le Bar.Foo
pour obtenir la valeur de Foo
?
source d'informationauteur ChiakiYu
Vous devez vous connecter pour publier un commentaire.
Donc, il ya vraiment deux façons d'aller à ce sujet.
Option 1 : La Classe D'Options
Vous avez un appsettings.fichier json :
Vous créez une Configuration POCO comme suit :
Dans votre démarrage.cs vous avez quelque chose dans votre ConfigureServices qui enregistre la configuration :
Puis dans votre contrôleur/service que vous injectez dans le IOptions et c'est utilisable.
Personnellement je n'aime pas utiliser IOptions parce que je pense qu'il traîne le long de la partie supplémentaire de l'ordure que je ne veux pas vraiment, mais vous pouvez faire des choses très intéressantes comme la permutation à chaud, et des trucs avec elle.
Option 2 : Configuration POCO
C'est essentiellement le même, mais dans votre Configurer les Services de la méthode, au contraire, vous lier à un singleton de votre POCO.
Et alors vous pouvez simplement injecter le POCO directement :
Un peu simpliste, parce que vous devriez probablement utiliser une interface pour effectuer les tests unitaires un peu plus facile, mais vous obtenez l'idée.
Pour la plupart prises à partir d'ici : http://dotnetcoretutorials.com/2016/12/26/custom-configuration-sections-asp-net-core/
Vous pouvez également utiliser directement à la configuration. Vos paramètres sont injectés de sorte que vous pouvez obtenir avec DI...
et puis vous pouvez lire vos paramètres...
Dans ce cas j'ai une collection de retour...