24

Sto sviluppando un progetto WebAPI ASP.NET 5 utilizzando l'anteprima di VS Ultimate 2015. Sto cercando di configurare l'applicazione in questo modo (i numeri di riga sono solo guida):Perché Visual Studio mi dice che il metodo AddJsonFile() non è definito nella classe di configurazione?

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 } 

linea 8 darmi un errore: 'Configurazione' non contiene una definizione per 'AddJsonFile' ...

Cosa c'è che non va?

+0

@JohnSaunders Copia quello. – NetCito

risposta

46

è necessario includere il Microsoft.Extensions.Configuration.Json se si desidera chiamare il metodo .AddJsonFile()

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

Per ulteriori letture, un bel tutorial e ': http://whereslou.com/2014/05/23/asp-net-vnext-moving-parts-iconfiguration/

+1

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. –

+2

@PieterGoosen È incluso nella prima frase. I link sono ulteriori letture suggerite e un collegamento al download della libreria. – JClaspill

+0

@Lonig Copia quello. – NetCito

3

Nel caso in cui nessun altro è stato avendo problemi con questo, Microsoft ha reso breaking changes in questa parte del framework il 16 agosto 2015. È necessario importare le versioni corrette delle dipendenze e passare al nuovo modo di creare la configurazione.

mio config comprende:

{ 
    "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-*" 
    }, 
... 
} 

Questo codice, ispirato this question potrebbe in qualche modo per aiutare voi:

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; } 
    } 
... 

} 

Speranza che aiuta.

+0

Microsoft lo ha modificato di nuovo, vedere invece la risposta di WBuck – r590

8

So che questo è un po 'vecchio, ma mi sono imbattuto in questo problema quando ho tentato di costruire il mio primo progetto vuoto 1.0 di Asp.net. Per utilizzare il metodo AddJsonFile è necessario aggiungere un riferimento a Microsoft.Extensions.Configuration.Json al progetto tramite Nuget.

Per installare il riferimento eseguire il seguente comando nella console di gestione dei pacchetti:

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

1

Sotto projetc.json dovrai aggiungere all'interno dipendenze

dependencies { 
"Microsoft.Extensions.Configuration.Json": "1.0.0" 
} 
Problemi correlati