.net core 读取配置文件的几种方式

一、Json配置文件

1、这里的配置文件指的是下图

 2、json配置文件示例

{
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft": "Warning",
            "Microsoft.Hosting.Lifetime": "Information"
        }
    },
    "Setting": {
        "Url": "http://localhost:8080/",
        "Name": "localhost"
    }
}

二、读取配置文件的几种方式

1、方式一:直接读取

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

2、方式二:读取Json对象

1)新建应用设置类AppSettings

/// <summary>
/// 应用设置类
/// 总类:对应json文件,确定json模块与对象
/// </summary>
public static class AppSettings
{
    public static SettingClass settingClass { get; set; }
    public static void Init(IConfiguration configuration)
    {
        // 将Setting模块绑定到Json模块的Setting类
        settingClass = new SettingClass();
        configuration.Bind("Setting", settingClass);
    }
}

2)新建Json模块Setting类

/// <summary>
/// Json模块Setting类
/// </summary>
public class SettingClass
{
    /// <summary>
    /// 地址
    /// </summary>
    public string Url { get; set; }
    /// <summary>
    /// 名称
    /// </summary>
    public string Name { get; set; }
}

3)在Startup.cs中调用AppSettings的初始化方法

// AppSettings总类进行调用静态方法
AppSettings.Init(Configuration);

 4)在控制器中使用

[ApiController]
[Route("[controller]/[action]")]
public class TestController: ControllerBase
{
    public IConfiguration _configuration { get; set; }
    public TestController(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    /// <summary>
    /// 方式二:读取Json对象 - 变成类使用
    /// </summary>
    [HttpGet, HttpPost]
    public void GetConfigDemo2()
    {
        var url = AppSettings.settingClass.Url; // http://localhost:8080/
        var name = AppSettings.settingClass.Name; // localhost
    }
}
}

3、方式三:在注册服务中绑定实体类与Json文件,使用时声明为全局常量

1)在Startup.cs中将Json模块类与Json文件对应内容绑定(Json模块类如方式2的SettingClass类)

services.Configure<SettingClass> (option =>
{
    option.Url = Configuration["Setting:Url"];
    option.Name = Configuration["Setting:Name"];
});

 2)在控制器中使用

[ApiController]
[Route("[controller]/[action]")]
public class TestController: ControllerBase
{
    public IConfiguration _configuration { get; set; }
    public string UrlStr { get; set; }
    public string NameStr { get; set; }
    public TestController(IConfiguration configuration, IOptions<SettingClass> settings)
    {
        _configuration = configuration;
        UrlStr = settings.Value.Url;
        NameStr = settings.Value.Name;
    }
    /// <summary>
    /// 方法三:在注册服务的时候把配置文件与类绑定好值,使用时声明为全局常量
    /// </summary>
    [HttpGet, HttpPost]
    public void GetConfigDemo3()
    {
        var url = UrlStr; // http://localhost:8080/
        var name = NameStr; // localhost
    }
}

 以上就是.net core 读取配置文件的几种方式的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
.NET Core 中,我们通常使用 appsettings.json 文件来存储应用程序的配置信息。可以在应用程序启动时加载这个文件,并将其转换为强类型对象来方便使用。 以下是一个示例 appsettings.json 文件: ```json { "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "ConnectionStrings": { "DefaultConnection": "Data Source=myserver;Initial Catalog=mydatabase;Integrated Security=True;" }, "AppSettings": { "PageSize": 10, "MaxItems": 1000 } } ``` 在应用程序中,我们可以使用 ConfigurationBuilder 类来加载和解析 appsettings.json 文件。示例代码如下: ```csharp using Microsoft.Extensions.Configuration; var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); var configuration = builder.Build(); // 读取配置项 var pageSize = configuration["AppSettings:PageSize"]; var maxItems = configuration.GetValue<int>("AppSettings:MaxItems"); var connectionString = configuration.GetConnectionString("DefaultConnection"); ``` 在上面的示例中,我们首先创建了 ConfigurationBuilder 实例,并指定了 appsettings.json 文件的路径。然后,我们使用 Build() 方法来创建 IConfiguration 实例,该实例可以用于读取配置项。 在读取配置项时,我们可以使用索引器来获取一个简单的字符串值,也可以使用 GetValue<T>() 方法来获取一个类型化的值。另外,我们还可以使用 GetConnectionString() 方法来获取连接字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GoodTimeGGB

鼓励一下!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值