.net 6.0如何直接读取appsetting.json配置文件

文章介绍了如何在C#中不添加类的情况下,使用ConfigurationBuilder和IConfiguration接口从appsettings.json中读取Setting下的Url配置。展示了两种方法:一是直接使用ConfigurationBuilder构建ConfigurationRoot,二是通过依赖注入IConfiguration并获取配置值。
摘要由CSDN通过智能技术生成

现在有一个appsetting.json配置文件,里面有个setting下的url地址,需要读取,如下:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "Setting": {
    "Url": "127.0.0.1:8080"
  }
}

不添加任何类,直接读取appsetting.json的两种方法:

1.利用ConfigurationBuilder

var builder = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
        IConfigurationRoot configuration = builder.Build();
        var value = configuration["Setting:Url"];
        Console.log($"Url地址是: {value}");

2.利用IConfiguration,注入IConfiguration

[ApiController]
[Route("[controller]/[action]")]
public class TestController: ControllerBase
{
    public IConfiguration _configuration { get; set; }
    public TestController(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    /// <summary>
    /// 利用IConfiguration直接读取单个值的3个方法
    /// </summary>
    [HttpGet, HttpPost]
    public void GetConfiguration()
    {
        var url = _configuration["Setting:Url"]; // http://127.0.0.1:8080/
        var url2 = _configuration.GetValue<string>("Setting:Url"); // http://127.0.0.1:8080/
        var url3 = _configuration.GetSection("Setting").GetSection("Url").Value; // http://127.0.0.1:8080/
    }
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET Core 中,可以通过以下方式读取 appsettings.json 文件中的配置数据: 1. 首先,在项目根目录下创建一个名为 `appsettings.json` 的文件,并添加要读取的配置数据。例如: ```json { "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;MultipleActiveResultSets=true" }, "AppSettings": { "ApiKey": "123456" } } ``` 2. 在 `Program.cs` 文件中,使用 `CreateDefaultBuilder` 方法来创建 `HostBuilder`: ```csharp public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); ``` 3. 在 `Startup.cs` 文件中,使用 `IConfiguration` 接口来读取配置数据。例如: ```csharp public class Startup { private readonly IConfiguration _configuration; public Startup(IConfiguration configuration) { _configuration = configuration; } public void ConfigureServices(IServiceCollection services) { string connectionString = _configuration.GetConnectionString("DefaultConnection"); string apiKey = _configuration.GetValue<string>("AppSettings:ApiKey"); // 将配置数据注册到 DI 容器中 services.AddSingleton(new MyConfigurations(connectionString, apiKey)); } // ... } ``` 在上面的代码中,`IConfiguration` 接口的实例是通过构造函数依赖注入(Dependency Injection)的方式来获取的。然后,使用 `GetConnectionString` 方法来读取 `ConnectionStrings` 节点下的连接字符串,使用 `GetValue` 方法来读取 `AppSettings` 节点下的配置项。 最后,将读取的配置数据注册到 DI 容器中,以便在应用程序的其他地方使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值