2015-06-01 15 views
13

Asp.net 5 ha un nuovo sistema di configurazione che utilizza i file JSON per le impostazioni. È necessario selezionare manualmente il file json che si desidera caricare come configurazione con il metodo .AddJsonFile(string fileName) della nuova classe Configuration.Come utilizziamo CloudConfigurationManager con le configurazioni JSON di asp.net 5?

Nel frattempo, nella terra di Azure abbiamo questa nifty CloudConfigurationManager classe che dovrebbe gestire le impostazioni di afferrare dalle impostazioni del sito web Azure o attiva web.config se un'impostazione Azure non è stato trovato.

Ma come vanno combinate queste due cose? Sto riscontrando problemi nella ricerca di documentazione. Mi piacerebbe gestire le mie impostazioni in Azure per la produzione ma utilizzare lo config.json per il debugging locale. Ho avuto un sacco di problemi nel trovare esempi o documentazione.

risposta

20

Bene, si scopre che quando si tratta di utilizzare CloudConfigurationManager con asp.net 5, la risposta è che non è e il codice boilerplate lo ha già coperto. (Grazie a Scott Hanselman per tornare a me su twitter)

Quindi l'approccio standard è qualcosa di simile:

IConfiguration configuration = new Configuration() 
    .AddJsonFile("config.json") // adds settings from the config.json file 
    .AddEnvironmentVariables(); // adds settings from the Azure WebSite config 

L'ordine in cui questi sono chiamati significa che le impostazioni delle variabili di ambiente saranno sovra scrivere le impostazioni dalla configurazione locale. Tutto quello che devi fare per rendere l'uso di questo è assicurarsi che le impostazioni Azure saranno imitare il vostro Impostazioni- JSON, quindi se il file JSON sembra

{ 
    "AppSettings": { 
    "ConnectionString": "blahblahblah" 
    } 
} 

Che ci si vuole configurare le impostazioni in azzurro per assomigliare

Key: AppSettings:ConnectionString 
Value: blahblahblah 

, e quindi si può andare avanti e utilizzare lo stesso identico codice che si userebbe per la configurazione locale.

var connectionString = Configuration.Get("AppSettings:ConnectionString");