2016-05-25 36 views
9

Dire che inserisco le impostazioni di seguito in appsettings.json.ASP.NET Core RC2 Configura impostazioni app personalizzate

"MySettings": { 
    "SmtpHost": "smtp.mydomain.com"", 
    "WebService": "http://localhost:1337" 
} 

E ho la classe di seguito per mantenere quelle impostazioni.

public class MySettings 
{ 
    public string SmtpHost{ get; set; } 
    public string WebService{ get; set; } 
} 

Con RC1 utilizzare la riga di codice riportata di seguito nel metodo ConfigureServices() per caricare tali impostazioni di configurazione.

services.Configure<MySettings>(Configuration.GetSection("MySettings")); 

Ma in RC2 quella stessa riga di codice mi dà questo errore

Impossibile convertire da 'MicrosoftExtensions.Configuration.IConfigurationSection' a 'System.Action <MySettings>'.

risposta

11

è sufficiente fare riferimento a un pacchetto diverso con RC2. Nel tuo project.json aggiungi semplicemente un riferimento al pacchetto "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final" e otterrai il metodo di estensione corretto che stai cercando.

"dependencies": { 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final" 
} 

Come molte delle modifiche con ASP.NET core RC2, c'era un sacco di ri-imballaggio e in movimento delle cose. Ho creato uno migration guide che potresti trovare utile.

+1

LOL. Ho postato la domanda con l'intento di rispondervi da sola perché non ho trovato una risposta ad essa su SO. Quindi altre persone che potrebbero incontrare lo stesso problema possono ottenere una risposta rapida. Mi hai battuto sul tempo. Bel lavoro! –

+0

@ClintB, l'ho fatto notare alla comunità nella stanza vuota .NET. C'era molta confusione iniziale a riguardo. Sono felice di poterti aiutare. –

+0

Grazie per il link! L'ho messo in un segnalibro e lo leggerò. Stavo cercando di decidere a chi dare la risposta accettata tra te e Joe. La tua guida alla migrazione ti rende il vincitore. –

3

è necessario aggiungere il pacchetto:

"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final", 

e assicurarsi di aver questo utilizzando:

using Microsoft.Extensions.Configuration; 
+0

LOL. Ho postato la domanda con l'intento di rispondervi da sola perché non ho trovato una risposta ad essa su SO. Quindi altre persone che potrebbero incontrare lo stesso problema possono ottenere una risposta rapida. Mi hai battuto sul tempo. Bel lavoro! –

Problemi correlati