2015-10-16 26 views
12

我用來指定ConfigurationBuilder這樣的應用程序的基本路徑:指定應用程序基路徑中ConfigurationBuilder在beta8

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

    Configuration = configurationBuilder.Build(); 
} 

然而,如beta8的,的ConfigurationBuilder構造並不需要一個應用程序的基本路徑參數,它現在拋出一個異常。

如何指定基本路徑?

回答

14

如果我們查看source code of ConfigurationBuilder,我們可以看到構造函數不再接受表示應用程序基路徑的字符串。在代替,我們必須使用SetBasePath() extension methodIConfigurationBuilder接口上指定它:

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

    Configuration = configurationBuilder.Build(); 
} 

的特定提交可以發現here

+0

很抱歉,如果問題很晚,但您如何添加IApplicationEnvironment?我正在尋找幾個小時,並且無法正常工作..我對C#很新。如果我想注入IApplicationEnvironment,它說它找不到? – Anokrize

+0

以及我正在學習一個教程。他正在使用「Microsoft.Framework.Configuration」,如果我將其包含到我的項目中,我不能應用「.AddEnviromentVariables()」方法。爲了做到這一點,我需要「使用Microsoft.Extension.Configuration」。但是這不允許我使用IApplicationEnviroment? – Anokrize

+0

你用什麼版本@Anokrize? RC1或RC2? 「IApplicationEnvironment」類位於「Microsoft.Extensions.PlatformAbstractions」命名空間中。 –

相關問題