2017-09-26 19 views
0

機能しないバインディング:は、コンフィギュレーション、私は次のように設定してい

{ 
    "AppSettings": { 
    "ConnectionString": "mongodb://localhost:27017", 
    "Database": "local", 
    "ValidOrigins": [ "http://localhost:61229" ] 
    }, 
    "Logging": { 
    "IncludeScopes": false, 
    "Debug": { 
     "LogLevel": { 
     "Default": "Warning" 
     } 
    }, 
    "Console": { 
     "LogLevel": { 
     "Default": "Warning" 
     } 
    } 
    } 
} 

私はバインディングん:こう


    public class AppSettings 
    { 
     public string ConnectionString = ""; 
     public string Database = ""; 

     public List<string> ValidOrigins { get; set; } 
    } 

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

を私は次の設定ファイルを持っています結合:

AppSettings settings = new AppSettings(); 
    Configuration.GetSection("AppSettings").Bind(settings); 

settings.ValidOriginsはOKですが、ConnectionStringDatabaseはともにnullです。私は間違って何をしていますか?

答えて

3

バインダーはプロパティのみをバインドし、フィールドはバインドしません。 ConnectionStringDatabaseのフィールドの代わりにプロパティを使用してみてください。

public string ConnectionString { get; set; } 

public string Database { get; set; } 
0

「ヘンク」は、フィールドの代わりにプロパティを使用する必要があると述べています。修正されたプロパティの問題を除いて、自分のマシン上でコードを実行します。これは、次のクラス構造で動作します:

public class AppSettings 
{ 
    public string ConnectionString { get; set; } 
    public string Database { get; set; } 
    public List<string> ValidOrigins { get; set; } 
} 
関連する問題