2015-10-16 25 views
12

Kiedyś określić ścieżkę bazową aplikacja dla ConfigurationBuilder tak:Określ ścieżkę bazową zastosowanie w ConfigurationBuilder w beta8

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

    Configuration = configurationBuilder.Build(); 
} 

Jednak od beta8, konstruktor ConfigurationBuilder nie bierze ścieżkę bazową aplikacja argument i teraz zgłasza wyjątek.

Jak określić ścieżkę bazową?

Odpowiedz

14

Jeśli spojrzymy na source code of ConfigurationBuilder, widzimy, że konstruktor nie przyjmuje już łańcucha reprezentującego ścieżkę bazową aplikacji. W zastępstwie, musimy użyć SetBasePath() extension method na interfejsie IConfigurationBuilder aby go określić:

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

    Configuration = configurationBuilder.Build(); 
} 

Szczególna commit można znaleźć here.

+0

Przepraszam, jeśli pytanie jest spóźnione, ale w jaki sposób dodać środowisko IApplicationEnvironment? Szukam od wielu godzin i nie mogę go uruchomić działa. Jestem całkiem nowy w C#. Jeśli chcę wstrzyknąć środowisko IApplicationEnvironment, oznacza to, że nie można go znaleźć? – Anokrize

+0

Również podążam za tutorialem. Korzysta z "Microsoft.Framework.Configuration" i jeśli włączę to do mojego projektu, nie mogę zastosować metody ".AddEnviromentVariables()". W tym celu potrzebuję "używania Microsoft.Extension.Configuration". Ale to nie pozwala mi korzystać z IApplicationEnviroment ?? – Anokrize

+0

Jakiej wersji używasz @Anokrize? RC1 lub RC2? Klasa 'IApplicationEnvironment' funkcjonuje w przestrzeni nazw' Microsoft.Extensions.PlatformAbstractions'. –