【问题标题】:Configuration binding doesn't work配置绑定不起作用
【发布时间】:2017-09-26 12:19:25
【问题描述】:

我有以下设置:

{
  "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。我做错了什么?

【问题讨论】:

    标签: c# asp.net-core configuration


    【解决方案1】:

    活页夹只会绑定属性而不绑定字段。尝试使用属性而不是 ConnectionStringDatabase 的字段。

    public string ConnectionString { get; set; }
    
    public string Database { get; set; }
    

    【讨论】:

      【解决方案2】:

      还要确保您的属性不会被意外定义为自动属性:

      // ❌ WRONG
      
      public class Configuration {
         public string Database { get; }
      }
      
      
      // ✅ CORRECT
      
      public class Configuration {
         public string Database { get; set; }    // <----- Property must have a public setter
      }
      

      【讨论】:

        【解决方案3】:

        正如“Henk”所说,您需要使用属性而不是字段。我在我的机器上运行你的代码,除了更正的属性问题。它适用于以下类结构:

        public class AppSettings
        {
            public string ConnectionString { get; set; }
            public string Database { get; set; }
            public List<string> ValidOrigins { get; set; }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-12-15
          • 1970-01-01
          • 2011-10-02
          • 2018-11-07
          • 2017-11-02
          • 2011-12-25
          • 2012-02-12
          相关资源
          最近更新 更多