当前位置: 首页 > wzjs >正文

免费学习资源网站设计投稿的网站有什么

免费学习资源网站,设计投稿的网站有什么,中企动力中山分公司网站,wordpress源码系统下载ASP.NET Core 自动识别 appsettings.json 的机制解析 在 ASP.NET Core 中,IConfiguration 能自动识别 appsettings.json 并直接读取值的机制,是通过框架的 “约定优于配置” 设计和 依赖注入系统 共同实现的。以下是详细原理: 默认配置源的自…

ASP.NET Core 自动识别 appsettings.json 的机制解析

在 ASP.NET Core 中,IConfiguration 能自动识别 appsettings.json 并直接读取值的机制,是通过框架的 “约定优于配置” 设计和 依赖注入系统 共同实现的。以下是详细原理:


  1. 默认配置源的自动注册
    当使用 WebApplication.CreateBuilder() 创建应用时,框架会 自动加载默认配置源:
var builder = WebApplication.CreateBuilder(args);
// 等价于:
var builder = WebApplication.CreateBuilder(new WebApplicationOptions {Args = args,// 默认加载以下配置源(按优先级从高到低):// 1. 命令行参数// 2. 环境变量(前缀为 DOTNET_ 或 ASPNETCORE_)// 3. appsettings.{Environment}.json// 4. appsettings.json// 5. 用户机密(开发环境)
});

  1. 配置系统的初始化流程

  2. 自动查找配置文件
    • 框架会在程序集所在目录查找以下文件:

    appsettings.json(基础配置)

    appsettings.{Environment}.json(环境特定配置,如 appsettings.Development.json

  3. 自动加载到 IConfiguration
    • 通过 ConfigurationManager 自动合并所有配置源:

    builder.Configuration.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
    builder.Configuration.AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true);
    
  4. 注入到依赖系统
    builder.Build() 时会将 ConfigurationManager 实例注册为 IConfiguration 服务:

    services.AddSingleton<IConfiguration>(builder.Configuration);
    

  1. 直接访问配置值的原理
    通过 _configuration["MyKey"] 获取值时,实际调用链如下:
_configuration ConfigurationManager ConfigurationProvider 请求键"MyKey" 按优先级遍历所有Provider 返回匹配的值 返回最终值 _configuration ConfigurationManager ConfigurationProvider
  1. 键名匹配规则
    • 支持多级配置(用冒号分隔):

    {"Section": {"SubSection": {"MyKey": "Value"}}
    }
    
    {
    "Section2": {"Section3": {"SubSection": {"MyKey": "Value"}}}
    }
    
    _configuration["Section:SubSection:MyKey"]; // 返回 "Value"
    _configuration["Section3:Section2:SubSection:MyKey"];
    
  2. 值转换
    • 自动将字符串值转换为其他类型(通过 Get<T> 方法):

    int timeout = _configuration.GetValue<int>("Timeout");
    

  1. 动态加载与更新
    • 文件监控:

默认启用 reloadOnChange: true,修改文件后会自动重新加载配置。

// 监听文件变化
builder.Configuration.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

• 环境切换:

ASPNETCORE_ENVIRONMENT 环境变量改变时,会自动加载对应的环境配置文件。


  1. 为什么不需要手动注册?
    • 隐式服务注册:

WebApplication.CreateBuilder 已包含默认服务配置(ConfigureHostDefaultsConfigureAppDefaults)。

• 约定优先:

框架默认认为 appsettings.json 是标准配置文件,除非显式禁用。


  1. 自定义配置加载
    如果需要完全控制配置加载,可以手动初始化:
var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("custom.json") // 自定义文件.AddEnvironmentVariables().Build();var builder = WebApplication.CreateBuilder(new WebApplicationOptions {Configuration = config // 替换默认配置
});

  1. 验证配置是否加载
// 打印所有配置键值
foreach (var kv in _configuration.AsEnumerable())
{Console.WriteLine($"{kv.Key}: {kv.Value}");
}


文章转载自:

http://ix0j0GyV.tnmmp.cn
http://YKmCR3C5.tnmmp.cn
http://Q67kIhYB.tnmmp.cn
http://ulHhZqmo.tnmmp.cn
http://aRSZQ4w1.tnmmp.cn
http://vPwB8Wlj.tnmmp.cn
http://T3kAf4bz.tnmmp.cn
http://RbA4fqJD.tnmmp.cn
http://ui67amJ1.tnmmp.cn
http://gE68m7km.tnmmp.cn
http://zmEebzUo.tnmmp.cn
http://MJaBlbgx.tnmmp.cn
http://N429sCfr.tnmmp.cn
http://EakpDrqY.tnmmp.cn
http://GxUjidKK.tnmmp.cn
http://L3z2xXPf.tnmmp.cn
http://7vWCrivk.tnmmp.cn
http://Ul6skcIs.tnmmp.cn
http://o7V9r4Nm.tnmmp.cn
http://z1H3bWse.tnmmp.cn
http://vvpcBoVa.tnmmp.cn
http://tdOtlvyS.tnmmp.cn
http://OHllPnzL.tnmmp.cn
http://R0JubR59.tnmmp.cn
http://6JGsJuXF.tnmmp.cn
http://LevjLn97.tnmmp.cn
http://rbKlQ7sh.tnmmp.cn
http://zV9xfb1S.tnmmp.cn
http://L8Myg5lO.tnmmp.cn
http://3ZDEpFsQ.tnmmp.cn
http://www.dtcms.com/wzjs/769446.html

相关文章:

  • dw做网站 怎么做背景图片张家口城乡建设局网站
  • 怎么做网站导航edunews wordpress
  • 金山区做网站吗企业展厅装修
  • 有服务器域名源码怎么做网站平台wordpress 安装主题
  • 网站目录结构 权限沈阳做网站费用
  • 海外建站平台成立公司需要多少费用
  • 电信开放81端口怎样做网站找建筑官网
  • 天津网站优化怎么样高端网站制作费用
  • 资讯网站手机网站模板今天热点新闻事件
  • 优惠券网站建设制作wordpress 时光轴
  • 青海网站制作wordpress登不上
  • 局域网站建设模版网上智慧团建网站登录
  • 电商网站支付接口湖州做网站的
  • 广告公司的经营模式seo搜索推广
  • 网站的空间是什么昆明市网站制作公司
  • 瑞安做网站做报纸能经常更新网站
  • 个人电脑做服务器映射网站杭州品牌网站制作
  • 网站哪家做得好深圳防疫隔离政策
  • 吉林做网站多少钱互动营销网站
  • 宁波网站开发公司个人网页设计欣赏网站
  • 北京智能模板建站自己做的网站申请软著
  • 网站建设特效大全忘记了wordpress登录密码忘记
  • 公司如何建设网站首页省直部门门户网站建设
  • 一般做淘宝的素材都有哪个网站苏州建站模板搭建
  • 手机上做网站php推广app最快的方法
  • 焦作网站建设无锡做网站设计
  • 营销式网站建设公司ui设计与制作培训
  • 做直播网站需要学什么软件有哪些深圳建站公司收费
  • 广东佛山网站建设wordpress俄语
  • 网站上社保做增员怎么做中国建设工程招投标网站