L'obtention de la valeur de appSettings.json?

Je ne suis pas en mesure de récupérer la valeur définie dans appsettings.json, lorsque j'exécute le code ci-dessous, j'obtiens une erreur System.NullReferenceException: 'Object reference not set to an instance of an object.'

Ce que je fais mal?

public static IConfigurationRoot Configuration { get; } 
....
string facebookApiId = Configuration.GetValue<string>("Authentication:Facebook:AppId");

appSettings.json

"Authentication": {
  "Facebook": {
    "IsEnabled": "false",
    "AppId": "somevalue1",
    "AppSecret": "somevalue2"
  },
  "Google": {
    "IsEnabled": "false",
    "ClientId": "somevalue3",
    "ClientSecret": "somevalue4"
  }

De démarrage.cs

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
        .AddEnvironmentVariables();
    Configuration = builder.Build();
}

public IConfigurationRoot Configuration { get; }
  • Avez-vous jamais Configuration avec le résultat de la configuration du générateur? Post de votre Démarrage du constructeur
  • Vous ne pouvez pas céder vos Configuration des biens, ou de l'affecter plus tard que vous essayez d'obtenir la valeur.
  • posté le démarrage.cs
  • Et où en êtes-vous y accéder à partir de? Depuis qu'il est statique, il peut être partout. La Configuration doit être accessible de l'extérieur de démarrage de toute façon (recommandé est privé ou protégé). Statique supporte le risque d'être appelé avant qu'il soit initialisé. Changer protégées et voir si vous obtenez des erreurs de compilation après que
  • Vos exemples de code sont contradictoires. Dans un premier temps vous avez static IConfigurationRoot Configuration , en deuxième IConfigurationRoot Configuration (non statique).
InformationsquelleAutor 001 | 2017-03-23