0

0

C#如何实现配置文件的读取与管理?appsettings.json配置模型详解

畫卷琴夢

畫卷琴夢

发布时间:2025-11-24 18:31:02

|

801人浏览过

|

来源于php中文网

原创

答案:文章介绍了C#中appsettings.json的配置管理,涵盖文件结构、程序启动时加载、强类型绑定、多环境支持及热更新。1. appsettings.json包含连接字符串、日志和自定义配置;2. 通过IConfiguration在Program.cs中自动加载;3. 使用Options模式将配置绑定到POCO类提升可维护性;4. 支持Development/Production等多环境配置覆盖;5. 可结合IOptionsMonitor实现配置热更新,增强灵活性。

c#如何实现配置文件的读取与管理?appsettings.json配置模型详解

在C#开发中,配置文件的读取与管理是项目初始化和运行时参数控制的重要环节。特别是在.NET Core及后续版本中,appsettings.json 成为了标准的配置文件格式。它不仅结构清晰、易于维护,还支持多环境配置和强类型绑定。下面详细介绍如何使用 appsettings.json 实现配置的读取与管理。

1. appsettings.json 文件结构

一个典型的 appsettings.json 文件如下:

{ "ConnectionStrings": { "DefaultDb": "Server=localhost;Database=MyApp;Trusted_Connection=true;" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AppSettings": { "AppName": "MyApplication", "Version": "1.0.0", "EnableFeatureX": true, "TimeoutSeconds": 30 } }

该文件包含数据库连接字符串、日志设置以及自定义应用配置。层次化的 JSON 结构便于组织不同模块的配置项。

2. 在程序启动时加载配置

.NET 的配置系统基于 IConfiguration 接口,通常在 Program.csStartup.cs 中完成初始化。

以现代 .NET(6+)为例,在 Program.cs 中自动构建配置:

var builder = WebApplication.CreateBuilder(args); // 配置服务 builder.Services.AddControllers(); // IConfiguration 已默认加载 appsettings.json var app = builder.Build(); // 使用配置示例 var appName = app.Configuration["AppSettings:AppName"]; Console.WriteLine($"App Name: {appName}"); app.Run();

builder.Configuration 自动读取 appsettings.json环境变量等来源,开发者可直接通过索引器访问键值。

3. 强类型配置绑定(Options 模式)

为了避免硬编码键名,推荐使用选项模式将配置映射到 POCO 类。

定义配置类:

public class AppSettings { public string AppName { get; set; } public string Version { get; set; } public bool EnableFeatureX { get; set; } public int TimeoutSeconds { get; set; } }

Program.cs 中注册强类型配置:

builder.Services.Configure( builder.Configuration.GetSection("AppSettings"));

在控制器或其他服务中通过依赖注入使用:

Viggle AI
Viggle AI

Viggle AI是一个AI驱动的3D动画生成平台,可以帮助用户创建可控角色的3D动画视频。

下载
public class HomeController : Controller { private readonly AppSettings _appSettings; public HomeController(IOptions options) { _appSettings = options.Value; } public IActionResult Index() { ViewBag.Name = _appSettings.AppName; return View(); } }

这种方式类型安全,便于单元测试,也更易维护。

4. 多环境配置支持

.NET 支持按环境加载不同的配置文件,如:

  • appsettings.Development.json
  • appsettings.Production.json
  • appsettings.Staging.json

环境由 ASPNETCORE_ENVIRONMENT 环境变量决定。系统会自动加载主配置文件和对应环境的覆盖配置。

例如,在 appsettings.Production.json 中可以设置不同的数据库连接或关闭调试日志。

5. 自定义配置源与热更新

除了 JSON 文件,.NET 配置系统还支持从环境变量、命令行、Azure Key Vault 等加载配置。

若需实现配置修改后自动刷新,使用 IOptionsSnapshotIOptionsMonitor

// 注册方式不变 builder.Services.Configure( builder.Configuration.GetSection("AppSettings")); // 使用 IOptionsSnapshot 在每次请求时重新读取(适合作用域内) // 或 IOptionsMonitor 支持变更通知

当配置文件被外部修改时,IOptionsMonitor 可监听变化并触发回调。

基本上就这些。合理使用 appsettings.json 和 .NET 配置模型,能让应用更灵活、可维护性更强。关键是结合强类型绑定和环境隔离,避免魔法字符串和硬编码。不复杂但容易忽略细节。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

411

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

532

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

254

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

206

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1463

2023.10.24

PHP 表单处理与文件上传安全实战
PHP 表单处理与文件上传安全实战

本专题聚焦 PHP 在表单处理与文件上传场景中的实战与安全问题,系统讲解表单数据获取与校验、XSS 与 CSRF 防护、文件类型与大小限制、上传目录安全配置、恶意文件识别以及常见安全漏洞的防范策略。通过贴近真实业务的案例,帮助学习者掌握 安全、规范地处理用户输入与文件上传的完整开发流程。

3

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.2万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号