无法创建类型' System.String'的实例。

时间:2017-12-12 06:16:48

标签: c# json asp.net-core

我尝试从appsettings.json获取我的部分,然后将其绑定到MongoSettings类的内容,但我有一个例外:

  

"无法创建类型' System.String'因为它缺失了   一个公共无参数构造函数。"

很奇怪,因为我使用相同的方法来获取jwt设置。

请看一下:

    var jwtSettings = Configuration.GetSection("jwt").Get<JwtSettings>(); //it works
    var mongoSettings = Configuration.GetSection("mongo").Get<MongoSettings>(); //it doesn't

appsettings.json

  "Jwt": {
    "issuer" : "localhost:5000",
    "expiryMinutes" : 60,
    "key" : "das#@4SD120847@12313"
  },
  "Mongo": {
    "connection:" : "mongodb://localhost:27017",
    "database" : "MemoTime"
  }

MongoSettings:

public class MongoSettings
{
    public string Connection { get; set; }
    public string Database { get; set; }
}

JwtSettings:

public class JwtSettings
{
    public string Key { get; set; }
    public string ValidIssuer { get; set; }
    public int ExpiryMinutes { get; set; }
}

正如您所看到的,应用程序设置中的clasess和部分看起来类似,那么为什么获取mongo的设置不起作用?

1 个答案:

答案 0 :(得分:2)

你问题是在Json中有额外的冒号“:”,这就是为什么它会给出错误

  

有效的Json数据。

"Jwt": 
  {
    "issuer": "localhost:5000",
    "expiryMinutes": 60,
    "key": "das#@4SD120847@12313"
  },
  "Mongo": 
  {
    "connection": "mongodb://localhost:27017",
    "database": "MemoTime"
  }

enter image description here

enter image description here