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

Asp.Net Core 中使用配置文件

本文参考微软文档:ASP.NET Core 中的配置

ASP.NET Core 中的应用程序配置是使用一个或多个配置程序提供程序执行的。

 配置提供程序使用各种配置源从键值对读取配置数据:

  • 设置文件,例如 appsettings.json
  • 环境变量
  • Azure Key Vault
  • Azure 应用配置
  • 命令行参数
  • 已安装或已创建的自定义提供程序
  • 目录文件
  • 内存中的 .NET 对象

这里主要介绍使用设置文件,设置文件包含一组名称类似的文件:appsettings.json,appsettings.{Environment}.json

其中,Environment 取值可以是任意值,但是框架提供了下列三个值:

  • Development:launchSettings.json 文件将本地计算机上的 ASPNETCORE_ENVIRONMENT 设置为 Development
  • Staging
  • Production:没有设置 DOTNET_ENVIRONMENT 和 ASPNETCORE_ENVIRONMENT 时的默认值。

默认的 JsonConfigurationProvider 会按以下顺序加载配置:

  1. appsettings.json
  2. appsettings.{Environment}.json:例如,appsettings.Production.json 和 appsettings.Development.json 文件。 文件的环境版本是根据 IHostingEnvironment.EnvironmentName 加载的。 

appsettings.{Environment}.json 值替代 appsettings.json 中的键。 例如,默认情况下:

  • 在开发环境中,appsettings.Development.json 配置会覆盖在 appsettings.json 中找到的值。
  • 在生产环境中,appsettings.Production.json 配置会覆盖在 appsettings.json 中找到的值。 例如,在将应用部署到 Azure 时。

经测试,通过IDE直接启动时,使用的是appsettings.Development.json文件,而发布后的程序启动时,使用的则是 appsettings.Production.json文件。

在代码中使用配置文件

通过依赖注入的方式配置Configuration属性,然后通过GetSection方法访问键值对。

public partial class AdminContext : DbContext
{public AdminContext(IConfiguration configuration){Configuration = configuration;}public AdminContext(DbContextOptions<AdminContext> options, IConfiguration configuration): base(options){Configuration = configuration;}private readonly IConfiguration Configuration;protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){string? host = Configuration.GetSection("DBHost").Value;string? port = Configuration.GetSection("DBPort").Value;string? userid = Configuration.GetSection("DBUser").Value;string? password = Configuration.GetSection("DBPasswd").Value;string connectString = $"host={host};port={port};database=Admin; userid={userid};password={password};";optionsBuilder.UseMySQL(connectString);}
}

http://www.lryc.cn/news/227841.html

相关文章:

  • 深入理解JVM虚拟机第二十四篇:详解JVM当中的动态链接和常量池的作用
  • QGridLayout
  • 万能在线预约小程序系统源码 适合任何行业在线预约小程序+预约到店模式 带完整的搭建教程
  • Leetcode 2935. Maximum Strong Pair XOR II
  • [直播自学]-[汇川easy320]搞起来(4)看文档 查找设备(续)
  • WebSphere Liberty 8.5.5.9 (四)
  • UE特效案例 —— 角色刀光
  • 11. EPIC定时器
  • git-bash配置代理
  • 【ElasticSearch系列-07】ES的开发场景和索引分片的设置及优化
  • JavaWeb Day09 Mybatis-基础操作02-XML映射文件动态SQL
  • CV学习基础
  • 设计模式之禅之设计模式-原型模式
  • Spring的循环依赖问题
  • RT-DETR算法改进:更换损失函数DIoU损失函数,提升RT-DETR检测精度
  • 【ICE】2:基于webrtc的 ice session设计及实现
  • Vue组件传
  • 轻量封装WebGPU渲染系统示例<25>- 颜色附件数据更新替换(源码)
  • c语言练习第11周(1~5)
  • 阿里云国际站服务器如何升级内存容量?
  • 神经网络(第二周)
  • 《网络协议》04. 应用层(DNS DHCP HTTP)
  • springboot自己添加的配置文件没有绿色叶子问题
  • 【Java】定时任务 - Timer/TimerTask 源码原理解析
  • SAP ABAP基础语法-Excel上传(十)
  • 记录一次某某虚拟机的逆向
  • upload-labs关卡7(基于黑名单的空格绕过)通关思路
  • CnosDB 在最近新发布的 2.4.0 版本中增加对时空函数的支持。
  • python实现炒股自动化,个人账户无门槛量化交易的开始
  • 推荐系统笔记--Swing模型的原理