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

网站右侧广告代码网站开发流程人物

网站右侧广告代码,网站开发流程人物,表格制作教程 步骤,长春网站优化咨询环境:.net8.0 1. 准备条件 先在appsettings.Development.json或appsettings.json添加配置 添加一个DbOption {"DbOption": {"Conn": "foolishsundaycsdn"} }2.直接读取json配置节点的几种写法 在Main函数中读取json配置 方式一 …

环境:.net8.0

1. 准备条件

先在appsettings.Development.json或appsettings.json添加配置
添加一个DbOption

{"DbOption": {"Conn": "foolishsunday@csdn"}
}

2.直接读取json配置节点的几种写法

在Main函数中读取json配置
方式一

var conn1 = builder.Configuration["DbOption:Conn"];

方式二

var conn2 = builder.Configuration.GetValue<string>("DbOption:Conn");

方式三

var conn3 = builder.Configuration.GetSection("DbOption").GetSection("Conn").Value;

方式四

var conn4 = builder.Configuration.GetSection("DbOption")["Conn"];

3.转化为类或record类型

定义类

    public class DbOption{public string Conn { get; set; }}

转化

DbOption opt = builder.Configuration.GetSection(nameof(DbOption)).Get<DbOption>();

4.通过注入IConfiguration方式

    [ApiController][Route("[controller]")]public class TestController : ControllerBase{private readonly IConfiguration _configuration;public TestController(IConfiguration configuration){_configuration = configuration;}[HttpPost]public async Task<IActionResult> GetConfig(){var conn1 = _configuration["DbOption:Conn"];var conn2 = _configuration.GetValue<string>("DbOption:Conn");var conn3 = _configuration.GetSection(nameof(DbOption)).GetSection("Conn").Value;return Ok();}   }

5.或通过Options模式(推荐)

写法一

builder.Services.Configure<DbOption>(builder.Configuration.GetSection(nameof(DbOption)));

写法二

builder.Services.AddOptions<DbOption>().Bind(builder.Configuration.GetSection(nameof(DbOption)));

写法三

builder.Services.AddOptions<DbOption>().BindConfiguration(nameof(DbOption));

然后通过注入IOptions、IOptionsMonitor或IOptionsSnapshot获取

    [ApiController][Route("[controller]")]public class DemoController : ControllerBase{private readonly DbOption _dbOption;public DemoController(IOptionsSnapshot<DbOption> dbOption){_dbOption = dbOption.Value;//注意此处为.Value}   }

推荐使用IOptionsSnapshot

Options模式有三个接口IOptions、IOptionsMonitor或IOptionsSnapshot
IOption :单例,一旦生成就不会再更改,除非通过代码的方式更改;
OptionsMonitor :也是单例,但是它只要配置有变更,它就会更新,能通过代码的方式更改值;
IOptionsSnapshot :作用域注册,一次请求里值不会变,在配置文件更新的下一次请求,它的值会更新,但是它不能跨范围通过代码的方式更改值,只能在当前范围(请求)内有效

校验

其中写法二与写法三,如果忘记了配置,获取到值为null,是不会报错的。
如果需要在获取到null时报错,则可以添加Validate校(可抛OptionsValidationException异常)

builder.Services.AddOptions<DbOption>().BindConfiguration(nameof(DbOption))
.Validate(option =>
{if (string.IsNullOrEmpty(option.Conn)) return false;else return true;
});

6. 注意:调试和发布后启动,读取配置文件的区别

1、当启动vs调试时,由于启动的环境是Development,所以读取配置文件会优先读取appsettings.Development.json;如果没有值,才读取appsettings.json的值;
2、但当我们发布程序启动后(如双击.exe启动),则读取的是appsettings.json文件。
此区别可能会造成初学者产生混淆。

http://www.yayakq.cn/news/63449/

相关文章:

  • 二手房网签合同在哪个网站做盐城注册公司流程和费用
  • google网站收录入口网站建设学习要多久
  • 母婴护理服务网站模板做平面设计兼职的网站有哪些
  • 网站正在建设中 文案品牌建设实施方案
  • 福州工程建设信息网站哪些网站动效做的不错
  • 视频网站制作费用数字化文化馆网站建设
  • 建设工程网站贴吧东莞外贸优化公司
  • 网站建设 技术方案提供温州手机网站制作多少钱
  • 百度包头网站建设广州建设工程交易中心南沙交易部
  • 源创派网站建设外贸网站建设内容包括哪些
  • 快速搭建网站vue营销型网站有哪些代表
  • 汉力建设网站高端的网站优化公司
  • 黄岛因特网站建设公司公众号代运营
  • 网站怎样做多语言切换综述题建设网站需要几个步骤
  • 什么公司时候做网站网站demo 工具
  • 网站备案用的方案建设做最好的网站需要什么
  • 怎样将qq空间建设为个人网站wordpress整合论坛程序
  • 小企业网站建设方案大理网站建设沛宣
  • 网站建设需要哪些硬件莆田网站建设维护
  • 网站做百科成都市营销型网站建设
  • wordpress购物网站宝安各大网站制作比较好的
  • 免费网站打包appDW做的网站都能打开吗
  • 仪陇网站建设云南网站建设百度
  • wordpress文件上传 并发seo如何选择网站标题
  • 网站维护描述WordPress重置密码链接失效
  • 做网站需要成立公司吗住房和城乡建设部信息中心
  • 福州百度做网站多少钱网站外包 博客
  • 站长之家seo综合做硬件产品网站
  • 网站正在建设中 给你带来专业仿站网站建设
  • 湖南旅游网站开发广东装饰网站建设