web-dev-qa-db-fra.com

Pourquoi Visual Studio me dit-il que la méthode AddJsonFile () n'est pas définie?

Je développe un projet ASP.NET 5 WebAPI à l'aide de VS Ultimate 2015 Preview. J'essaie de configurer l'application de cette manière (les numéros de ligne ne sont que des guides):

1 using Microsoft.Framework.ConfigurationModel;
2
3 public IConfiguration Configuration { get; private set; }
4 
5 public Startup()
6 {
7     Configuration = new Configuration()
8         .AddJsonFile("config.json")
9         .AddEnvironmentVariables();
10 }

La ligne 8 me donne une erreur: 'Configuration' ne contient pas de définition pour 'AddJsonFile' ...

Qu'est-ce qui ne va pas?

63
NetCito

Vous devez inclure le package Microsoft.Extensions.Configuration.Json NuGet si vous souhaitez appeler la méthode .AddJsonFile().

Voir: https://github.com/aspnet/Configuration/tree/dev/src/Microsoft.Framework.ConfigurationModel.Json

Pour en savoir plus, voici un didacticiel de Nice: ASP.NET vNext Moving Parts: IConfiguration .

152
Lonig

Je sais que c'est un peu vieux, mais je viens de rencontrer ce problème lorsque j'ai tenté de créer mon premier projet vierge Asp.net Core 1.0. Pour utiliser la méthode AddJsonFile, vous devez ajouter une référence à Microsoft.Extensions.Configuration.Json à votre projet via Nuget.

Pour installer la référence, exécutez la commande ci-dessous dans la console du gestionnaire de packages:

PM> Install-Package Microsoft.Extensions.Configuration.Json

17
WBuck

Au cas où quelqu'un aurait eu des problèmes avec cela, Microsoft a effectué le 16 août 2015 interrompre les modifications cette partie de la structure. Vous devez importer les bonnes versions des dépendances et passer à la nouvelle manière. de construire la configuration.

Ma configuration comprend:

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.Framework.Runtime": "1.0.0-*",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta7",
    "Microsoft.AspNet.Mvc": "6.0.0-beta7",
    "Microsoft.Framework.Configuration": "1.0.0-beta7",
    "Microsoft.Framework.Configuration.Json": "1.0.0-*"
  },
...
}

Ce code, inspiré par cette question pourrait vous aider:

using System;
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
using Messenger.Services;
using Microsoft.Framework.Configuration;
using Microsoft.Dnx.Runtime;
using Microsoft.AspNet.Hosting;

namespace Messenger
{
    public class Startup
    {
        public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
        {
            var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
                .AddJsonFile("config.json")
                .AddEnvironmentVariables();
            Configuration = configurationBuilder.Build();
        }

        public IConfiguration Configuration { get; set; }
    }
...

}

J'espère que ça aide.

4
John Thow

Sous project.json, vous devrez l’ajouter à des dépendances.

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
1
D.AhmedRafik