2016-10-29 26 views
2

コンソールアプリケーションで.NETコアを実行していましたが、私はappsettings.jsonからの読み込みに固執しています。 はここに私のコードです:コンソールアプリケーションでappsettings.jsonから接続文字列を読み取ることができません

{ 
    "ConnectionStrings": { 
     "DataBaseConnectionString": "Server=xxxxxx" 
     } 
} 

...

var builder = new ConfigurationBuilder() 
    // .SetBasePath("") 
    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
    .AddEnvironmentVariables(); 
configuration = builder.Build(); 

var xx = configuration.GetConnectionString("DataBaseConnectionString"); 

私はxxにnullを得た、私は間違って何をやっていますか? おかげ

答えて

2

あなたのコードが正しいです。ファイルが存在することを確認するにはoptional: falseを設定します。コンソールアプリのキーポイントは、appsettings.jsonCopy to output directory: Alwaysというプロパティがあることを確認することです。ここで

は、最小限の再現性の例である:

//set "optional: false" to fail-fast without a file 
var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: false); 
var configuration = builder.Build(); 

//contains "Server=xxxxxx" 
string str = configuration.GetConnectionString("DataBaseConnectionString"); 

実際のドキュメント:Configuration in ASP.NET Core

0

試してください:あなたはDataBaseConnectionStringのconnectionStringsセグメント内にネストされているよう

var xx=configuration.GetConnectionString("ConnectionStrings:DataBaseConnectionString"); 

に見えます。あなたのコードは、あなたが今それを持っているように動作するようにするために

、あなたのAppSettingsは以下のように検討する必要があります:

{ 
    "DataBaseConnectionString": "Server=xxxxxx" 
} 

https://docs.asp.net/en/latest/fundamentals/configuration.html

関連する問題