web-dev-qa-db-fra.com

Lecture appsettings.json de la bibliothèque standard .net

j'ai commencé un nouveau projet RESTful en utilisant .NET Core Framework.

J'ai divisé ma solution en deux parties: Framework (ensemble de bibliothèques standard .NET) et Web (projet RESTful).

Avec le dossier Framework, je fournis une partie de la bibliothèque pour le projet Web suivant et dans l'un d'entre eux, je voudrais fournir une classe de configuration avec la méthode générique T GetAppSetting<T>(string Key).

Ma question est: comment puis-je obtenir l'accès au fichier AppSettings.json dans .NET Standard?

J'ai trouvé tellement d'exemples sur la lecture de ce fichier, mais tous ces exemples lisent le fichier dans le projet Web et personne ne le fait dans une bibliothèque extarnale. J'en ai besoin pour avoir du code réutilisable pour le projet Others.

7
Lollo

Comme déjà mentionné dans les commentaires, vous ne devriez vraiment pas le faire. Injectez un IOptions<MyOptions> Configuré en utilisant l'injection de dépendance à la place .

Cependant, vous pouvez toujours charger un fichier json en tant que configuration:

IConfiguration configuration = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory()) // Directory where the json files are located
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .Build();

// Use configuration as in every web project
var myOptions = configuration.GetSection("MyOptions").Get<MyOptions>();

Assurez-vous de référencer les packages Microsoft.Extensions.Configuration Et Microsoft.Extensions.Configuration.Json. Pour plus d'options de configuration voir la documentation .

11
Bruno Zell