[英]Configuration binding doesn't work
我有以下設置:
{
"AppSettings": {
"ConnectionString": "mongodb://localhost:27017",
"Database": "local",
"ValidOrigins": [ "http://localhost:61229" ]
},
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
}
}
我做綁定:
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
我有以下設置文件:
public class AppSettings
{
public string ConnectionString = "";
public string Database = "";
public List<string> ValidOrigins { get; set; }
}
做綁定:
AppSettings settings = new AppSettings();
Configuration.GetSection("AppSettings").Bind(settings);
settings.ValidOrigins
,但ConnectionString
和Database
都是null
。 我做錯了什么?
綁定器只會綁定屬性而不是字段。 嘗試使用屬性而不是ConnectionString
和Database
的字段。
public string ConnectionString { get; set; }
public string Database { get; set; }
正如“亨克”所說,您需要使用屬性而不是字段。 我在我的機器上運行你的代碼,除了更正的屬性問題。 它適用於以下類結構:
public class AppSettings
{
public string ConnectionString { get; set; }
public string Database { get; set; }
public List<string> ValidOrigins { get; set; }
}
還要確保您的屬性沒有被意外定義為自動屬性:
// ❌ WRONG
public class Configuration {
public string Database { get; }
}
// ✅ CORRECT
public class Configuration {
public string Database { get; set; } // <----- Property must have a public setter
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.