.NET Core读取配置文件方式详细总结

yizhihongxing

. 配置文件格式

在 .NET Core 应用程序中,最常用的配置文件格式是 JSON(JavaScript Object Notation)格式,可以通过 Newtonsoft.Json 这个 NuGet 包来实现。

在配置文件中,可以定义一些固定的属性,如连接字符串、应用程序的端口号、账号和密码等。

JSON 配置文件通常是通过键-值对存储的,如下所示:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "ConnectionStrings": {
    "DefaultConnection": "Server=127.0.0.1;Database=mydatabase;User ID=myuser;Password=mypassword;"
  },
  "AppSettings": {
    "UseSomeFeature": true
  }
}

在配置文件中可以看到,有三个主要的属性组:

  • Logging:用来配置日志记录的内容
  • ConnectionStrings:用来配置数据库连接字符串
  • AppSettings:其他应用选项的分类

. 读取配置文件内容

在 .NET Core 中读取配置文件内容的方式有多种。下面我们讲解两种常用的方式。

IOptions 接口方式

IOptions 是一种用于在 ASP.NET Core 中从配置文件读取值的强类型机制。 借助 IOptions 接口以及相应的各种扩展方法,可以方便地从 appsettings.json 文件中提取配置值。以下是一个使用 IOptions 的示例。

using Microsoft.Extensions.Options;

public class MyConfiguration
{
   public bool FeatureEnabled { get; set; }
}

public class HomeController : Controller
{
    private readonly MyConfiguration _config;

    public HomeController(IOptions<MyConfiguration> config)
    {
        _config = config.Value;
    }

    public IActionResult Index()
    {
        bool enabled = _config.FeatureEnabled;

        // ...
    }
}

示例代码使用 IOptions 来读取 appsettings.json 文件中的配置值,并使 HomeController 实例直接读取 MyConfiguration 数据类型的配置。由于此时提供了强类型配置支持,HomeController 就可以从配置文件中提取特定的配置值(例如 FeatureEnabled),而无需处理转换操作。默认情况下,IOptions 以单个“根对象” TModel 的形式进行注册。

IConfiguration 接口方式

另一种常用的读取配置文件的方式是使用 IConfiguration 接口。下面我们来看一个简单的示例。

using Microsoft.Extensions.Configuration;

public class HomeController : Controller
{
    private readonly IConfiguration _config;

    public HomeController(IConfiguration config)
    {
        _config = config;
    }

    public IActionResult Index()
    {
        bool enabled = _config.GetValue<bool>("AppSettings:UseSomeFeature");

        // ...
    }
}

在这个示例中,_config 通过构造函数注入了 IConfiguration 对象。Index() 方法使用 GetValue() 方法提取配置了 AppSettings 内容中的 UseSomeFeature 值,该值是一个布尔型的属性值。

. 总结

配置文件是 .NET Core 应用程序中经常使用的一种方式,可以实现对应用程序选项的自定义设置。在本文中,我们介绍了两种基于 .NET Core 读取配置文件的方式:IOptions和IConfiguration。通过这两种方法,使得应用程序可以从 appsettings.json 文件中读取及处理自定义的配置数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.NET Core读取配置文件方式详细总结 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • PHP预定义变量9大超全局数组用法详解

    PHP预定义变量9大超全局数组用法详解 PHP提供了9个超全局数组,它们在任何作用域中都可访问,无需使用global关键字。下面将详细介绍这9个超全局数组的用法。 1. $GLOBALS $GLOBALS是一个包含了全局变量的全局关联数组。它可以在函数内部访问全局变量,也可以在函数外部访问局部变量。示例代码如下: $global_var = 10; func…

    other 2023年8月9日
    00
  • pythonexecutemany的使用

    以下是详细讲解“Python execute many的使用”的完整攻略,过程中至少包含两条示例说明的标准Markdown格式文本: Python execute many的使用 Python中的execute many是一种用于执行多个SQL语句的方法,它可以提高执行效率,减少数据库连接次数。本文将介绍Python execute many的使用方法和示例…

    other 2023年5月10日
    00
  • 【精简系统教程】iOS8完美越狱后删除无用的iOS原生软件

    【精简系统教程】iOS8完美越狱后删除无用的iOS原生软件 一、前言 iOS原生应用虽然与日常工作息息相关,但很多时候我们并不需要每个应用,用不着的应用还会占用不少宝贵的设备储存空间。但通常情况下,我们不能像卸载第三方应用那样轻松删除原生应用,这个时候就需要一些小技巧了,本教程将介绍iOS8完美越狱后删除无用的iOS原生软件的方法。 二、步骤 首先确保你的设…

    other 2023年6月27日
    00
  • asp.net动态加载用户控件,关于后台添加、修改的思考

    一、介绍 在ASP.NET中,用户控件是一种可重用的界面组件,通过用户控件我们可以把常用的UI组件进行封装,使得我们可以重复使用,达到代码复用和代码维护的目的。 动态加载用户控件可以在运行时动态生成用户控件并且将其插入到页面中,非常的灵活方便。 在本文中,我们将利用ASP.NET提供的机制,通过动态加载用户控件实现后台添加和修改的需求。 二、流程 创建用户控…

    other 2023年6月26日
    00
  • gomap

    以下是GoMap的完整攻略: 1. 下载和安装GoMap 首先,我们需要从GoMap的官方网站下载GoMap。可以在以下链接中下载: GoMap – OpenStreetMap mapping tool 选择适合您操作系统的版本进行下载。下载完成后,按照提示进行安装。 2. 启动GoMap 启动GoMap后,您将看到一个地图界面。您可以使用鼠标和键盘控制地图…

    other 2023年5月8日
    00
  • 详解Linux系统中的tempfs与/dev/shm

    详解Linux系统中的tmpfs与/dev/shm 简介 在Linux系统中,我们经常需要在内存中创建一个文件系统或临时存储区。这时我们就可以使用tmpfs与/dev/shm。tmpfs是一种在内存中创建临时文件系统的机制,而/dev/shm是一个tmpfs挂载点,用于在内存中创建极快的共享内存。在本文中,我们将讨论如何使用tmpfs与/dev/shm。 t…

    other 2023年6月27日
    00
  • pytorch实现resnet34网络

    PyTorch实现ResNet34网络的完整攻略 ResNet是深度学习中非常流行的卷积神经网络之一,它在ImageNet数据集上取了常好的效果。本文将详细讲解如何使用PyTorch实现ResNet34网络,包数据预处理、网络搭建、训和测试等内容。 数据预处理 在使用PyTorch实现ResNet34网络之前,需要对数据进行预处理。可以按照以下步骤预处理: …

    other 2023年5月8日
    00
  • 未能添加对***.dll的引用问题解决方法

    以下是解决“未能添加对***.dll的引用问题”的完整攻略,包括以下步骤: 确认引用的DLL文件是否存在 检查DLL文件是否被占用 检查引用的DLL文件是否与项目的目标框架兼容 检查引用的DLL文件是否需要其他依赖项 清理和重建项目 示例说明 步骤一:确认引用的DLL文件是否存在 在解决“未能添加对***.dll的引用问题”之前,需要先确认引用的DLL文件是…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部