.NET Core 3.1 从 appsettings.json 为控制台应用程序加载配置

stu*_*ask 17 .net c# console .net-core .net-core-3.1

对于 .NET Core 3.1,控制台应用程序如何从 appsetting.json 文件中读取复杂对象并将其转换为相应的对象?

我在网上看到的所有示例似乎都是针对以前版本的 .NET core 的,从那时起事情似乎发生了变化。下面是我的示例代码。我真的不知道如何从这里开始。感谢您的帮助。

appsettings.json

{
  "Player": {
    "Name": "Messi",
    "Age": "31",
    "Hobby": "Football"
  }
}
Run Code Online (Sandbox Code Playgroud)

播放器.cs

{
  "Player": {
    "Name": "Messi",
    "Age": "31",
    "Hobby": "Football"
  }
}
Run Code Online (Sandbox Code Playgroud)

程序.cs

class Player
{
    public string Name { get; set; }
    public string Age { get; set; }
    public string Hobby { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Far*_*ani 32

在 .Net Core 3.1 中,您需要安装这些软件包:

  • Microsoft.Extensions.Configuration.Json

  • Microsoft.Extensions.Configuration.FileExtensions

然后构建IConfiguration

 static void Main(string[] args)
 {
    IConfiguration configuration = new ConfigurationBuilder()
       .AddJsonFile("appsettings.json", true,true)
       .Build();
    var playerSection = configuration.GetSection(nameof(Player));
}
Run Code Online (Sandbox Code Playgroud)

ASP.NET Core 中的参考配置

  • 有关信息,通过 nuget 添加 Microsoft.Extensions.Configuration.Json 还将添加 Microsoft.Extensions.Configuration.FileExtensions (8认同)
  • 另外值得一提的是,您应该为新添加的 appsettings.json 文件设置“复制到输出目录=始终复制”。 (2认同)