2016-05-25 26 views
9

Powiedz, że ustawienia poniżej umieszczam w appsettings.json.ASP.NET Core RC2 Skonfiguruj niestandardowe ustawienia aplikacji

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

Mam klasę poniżej, aby zachować te ustawienia.

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

Używając RC1, użyłbym poniższego wiersza kodu w metodzie ConfigureServices() do załadowania tych ustawień konfiguracyjnych.

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

Ale w RC2 że sama linia kodu daje mi ten błąd

nie można przekonwertować z 'MicrosoftExtensions.Configuration.IConfigurationSection' do 'System.Action <MySettings>'.

Odpowiedz

11

Wystarczy odwołać się do innego pakietu z RC2. W swoim project.json po prostu dodaj odwołanie do pakietu "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final", a otrzymasz właściwą metodę rozszerzenia, której szukasz.

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

Podobnie jak kilka zmian z ASP.NET podstawowej RC2, było dużo ponownego pakowania i przenoszenia rzeczy. Przygotowałem zestaw migration guide, który może ci się przydać.

+1

LOL. Wysłałem to pytanie z zamiarem udzielenia odpowiedzi, ponieważ nie mogłem znaleźć odpowiedzi na to pytanie. Inne osoby, które mogą napotkać ten sam problem, mogą uzyskać szybką odpowiedź. Uderzyłeś mnie w to. Dobra robota! –

+0

@ ClintB, zwróciłem na to uwagę społeczności w pokoju luki .NET. Było w tym wiele początkowych nieporozumień. Cieszę się, że mogłem pomóc. –

+0

Dzięki za link! Zrobiłem zakładkę i przeczytam. Próbowałem zdecydować, komu dać zaakceptowaną odpowiedź między tobą a Joe. Twój przewodnik migracji sprawi, że wygrasz. –

3

trzeba dodać pakiet:

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

i upewnij się, że to za pomocą:

using Microsoft.Extensions.Configuration; 
+0

LOL. Wysłałem to pytanie z zamiarem udzielenia odpowiedzi, ponieważ nie mogłem znaleźć odpowiedzi na to pytanie. Inne osoby, które mogą napotkać ten sam problem, mogą uzyskać szybką odpowiedź. Uderzyłeś mnie w to. Dobra robota! –