2015-10-16 11 views
12

ho usato per specificare il percorso di base domanda di ConfigurationBuilder come questo:Specificare il percorso di base dell'applicazione in ConfigurationBuilder in beta8

public Startup(IApplicationEnvironment appEnv) 
{ 
    var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath) 
     .AddJsonFile("config.json") 
     .AddEnvironmentVariables(); 

    Configuration = configurationBuilder.Build(); 
} 

Tuttavia, come del beta8, il costruttore di ConfigurationBuilder non ci vuole un percorso di base dell'applicazione argomento più e getta un'eccezione ora.

Come specificare il percorso di base?

risposta

14

Se guardiamo allo source code of ConfigurationBuilder, possiamo vedere che il costruttore non accetta più una stringa che rappresenta il percorso della base dell'applicazione. In vece, dobbiamo usare il SetBasePath() extension method sull'interfaccia IConfigurationBuilder specificarlo:

public Startup(IApplicationEnvironment appEnv) 
{ 
    var configurationBuilder = new ConfigurationBuilder() 
     .SetBasePath(appEnv.ApplicationBasePath) 
     .AddJsonFile("config.json") 
     .AddEnvironmentVariables(); 

    Configuration = configurationBuilder.Build(); 
} 

La particolare commit può essere trovato here.

+0

Scusa se la domanda è molto tardi ma come si aggiunge IApplicationEnvironment? Sto cercando ore e ora non riesco a farlo funzionare .. Sono abbastanza nuovo di C#. Se voglio iniettare IApplicationEnvironment, dice che non è stato trovato? – Anokrize

+0

Sto seguendo un tutorial. Sta usando "Microsoft.Framework.Configuration" e se includo questo nel mio progetto non posso applicare il metodo ".AddEnviromentVariables()". Per fare questo ho bisogno di "usare Microsoft.Extension.Configuration". Ma questo non mi permette di usare IApplicationEnviroment ?? – Anokrize

+0

Quale versione usi @Anokrize? RC1 o RC2? La classe 'IApplicationEnvironment' risiede nello spazio dei nomi' Microsoft.Extensions.PlatformAbstractions'. –

Problemi correlati