J'ai une application console ciblant .NET 4.7.1. J'essaie d'utiliser la configuration de base .net comme dans mon application .Net Framework. Mon `App.config est:
<configuration>
<configSections>
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
</configSections>
<configBuilders>
<builders>
<add name="SimpleJson"
jsonFile="config.json"
optional="false"
jsonMode="Sectional"
type="Microsoft.Configuration.ConfigurationBuilders.SimpleJsonConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Json, Version=1.0.0.0, Culture=neutral" /></builders>
</configBuilders>
Et j'ai un fichier config.json
dont la propriété "Copier toujours" est définie sur True
. config.json
ressemble à:
{
"appSettings": {
"setting1": "value1",
"setting2": "value2",
"complex": {
"setting1": "complex:value1",
"setting2": "complex:value2"
}
},
"connectionStrings": {
"mySpecialConnectionString": "Dont_check_connection_information_into_source_control"
}
}
Ensuite, dans ma méthode main
, j'essaie de lire une valeur de configuration comme:
var config = ConfigurationManager.AppSettings
Cependant, la valeur de config
est toujours nulle. J'ai essayé ce qui suit:
jsonFile
en ~/config.json
;jsonMode
sur la valeur par défaut de flat;Mais, je ne peux pas faire fonctionner la config. Comment puis-je résoudre ce problème?
Je l'ai fait aussi il y a quelque temps, mais ce n'était pas seulement un vol simple. Vous pouvez utiliser les packages Microsoft Nuget Microsoft.Extensions.Configuration
& Microsoft.Extensions.Configuration.Json
et installez votre propre ConfigurationBuilder.
Jetez un oeil à cet article , je pense que vous devriez le terminer.
<appSettings configBuilders="SimpleJson">
Voici le code qui fonctionne pour moi:
<configBuilders>
<builders>
<add name="SimpleJson" jsonFile="~\developer_config.json" optional="false" jsonMode="Sectional" type="Microsoft.Configuration.ConfigurationBuilders.SimpleJsonConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Json, Version=1.0.0.0, Culture=neutral" />
</builders>
</configBuilders>
<appSettings configBuilders="SimpleJson">
...
</appSettings>
Regardez l'exemple dans code source
Vous devez ajouter dans votre section de fichier de configuration
<appSettings configBuilders="SimpleJson">
<add key="AppConfiguration:Key1" value="will be replaced by value in json file" />
</appSettings>
Et supprimez l'attribut jsonMode = "Sectional".
Vous pouvez accéder à votre valeur en utilisant
var key1 = ConfigurationManager.AppSettings["AppConfiguration:Key1"];