2017-10-18 42 views
0

Je migre ma solution .NET vers .NET Core 2.0. Comment devrais-je transformer les appels à ConfigurationManager comme suit?Fonctionnement des fichiers de configuration .NET Core

var valueFromConfig = ConfigurationManager.AppSettings["someName"]; 

je cherchais pour cela, mais ce que j'ai trouvé se concentre principalement sur les applications ASP.NET, alors que je veux accéder à des fichiers de configuration dans l'application de la console et les fenêtres application de service.

Répondre

4

Dans .NET Core 2.0 (et dans la norme .NET 2.0), contrairement à la version précédente de. NET Core \ Standard, vous pouvez utiliser la bonne vieille classe ConfigurationManager. Il suffit d'installer package NuGet appelé System.Configuration.ConfigurationManager, vous pouvez l'utiliser comme d'habitude:

var valueFromConfig = ConfigurationManager.AppSettings["someName"]; 

Pour ajouter app.config - clic droit projet, Ajouter> Nouvel élément> Application du fichier de configuration. Notez que vous devrez peut-être reconstruire le projet après avoir apporté des modifications à ce fichier app.config pour qu'il ait un effet (à copier dans le fichier YourProjectName.dll.config dans la sortie).

+0

Cela semble très bien, je vais m'en tenir à cette solution, au moins temporairement. Alors que je n'aurai pas à faire beaucoup de changements maintenant. – KirillSk

0

S'il vous plaît jeter un oeil à ce lien: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration?tabs=basicconfiguration

Ne vous inquiétez pas que le sujet est sur le point de configuration dans ASP.NET base. Il est également pertinent pour toutes sortes d'applications.

Dans un premier temps, vous devez installer Microsoft.Extensions.Configuration via NuGet.

Ensuite, vous devez installer Microsoft.Extensions.Configuration.Xml si vous souhaitez utiliser XML comme fichier de configuration. Il existe une option: vous pouvez utiliser le fichier JSON en tant que fichier de configuration. Afin de l'utiliser, vous devez installer - Microsoft.Extensions.Configuration.Json

L'idée principale est d'utiliser la classe ConfigurationBuilder. Vous pouvez également avoir plusieurs configurations simultanément.

Voici un exemple de code:

var builder = new ConfigurationBuilder() 
      .SetBasePath(Directory.GetCurrentDirectory()) 
      .AddXmlFile("appsettings.xml", optional: true, reloadOnChange: true) 

IConfigurationRoot configuration = builder.Build(); 

var setting1 = configuration["MySetting"]; 

Où XML est ressembler à:

<configuration> 
    <MySetting>23</MySetting> 
</configuration>