簡體   English   中英

配置綁定不起作用

[英]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 ,但ConnectionStringDatabase都是null 我做錯了什么?

綁定器只會綁定屬性而不是字段。 嘗試使用屬性而不是ConnectionStringDatabase的字段。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM