在启动时从配置文件中读取对象
目录
介绍
背景
使用代码
如何从Web应用程序的配置文件反序列化对象
介绍
本技巧揭示了一种非常简单的方法,可以将Web应用程序的配置文件的各个部分作为对象读取,而无需选择模式或依赖注入。
背景
在ASP.NET Core中,很容易在配置文件中配置一组相关设置,通常是appsettings.json,要反序列化为类并注入DI客户端。然而,显然,简单地从该文件反序列化对象并在DI容器完全初始化之前使用它并不简单。
使用代码
作为一个例子,我已经编写了我的代码,其中通过从appsettings.json读取这些规则作为对象来为ASP.NET身份配置密码规则。通常情况下,我会对这些设置进行硬编码,因为它们在应用程序的生命周期中很少发生变化,但是在我包含密码生成的项目中,我希望生成的密码符合与为身份配置的密码相同的规则,我认为在appsettings.json中存储这些密码选项会很好。
这是我在配置文件中存储密码规则的方法:
{"ConnectionStrings": {"DefaultConnection": "Server=localhost;Database=Flair;Trusted_Connection=True;MultipleActiveResultSets=true"},"Logging": {"LogLevel": {"Default": "Warning"},},"Authentication": {"PasswordRules": {"RequiredLength": 8,"RequiredUniqueChars": 2,"RequireNonAlphanumeric": false,"RequireLowercase": false,"RequireUppercase": false,"RequireDigit": true}},"AllowedHosts": "*"
}
这就是我在Startup.cs中读取这些设置和配置Identity的方法:
var pwdSection = Configuration.GetSection("Authentication:PasswordRules");
var pwdOpts = pwdSection.Get<PasswordOptions>();
services.Configure<IdentityOptions>(options =>
{options.Password = pwdOpts;
});
被配置的IdentityOptions的options.Password属性是类的简单对象PasswordOptions。我所要做的就是确保配置文件的“ Authentication:PasswordRules”部分是对象的序列化。
奇迹发生在调用时:
var pwdOpts = pwdSection.Get<PasswordOptions>()
除非我在项目中包含以下NuGet包,否则这通常是不可能的。
Microsoft.Extensions.Configuration.Binder
这个StackOverflow 答案很好地揭示了这一点。
原文地址:https://www.codeproject.com/Tips/1272142/Reading-Objects-From-the-Config-File-at-Startup
在启动时从配置文件中读取对象相关推荐
- java object取数据_java使用ObjectInputStream从文件中读取对象
import java.io.EOFException; import java.io.FileInputStream; import java.io.FileNotFoundException; i ...
- java代码中出现黑色画线_从对象流中读取对象,请在画线处加入代码完成此程序【 】。 import java.util.*; import ja...
从对象流中读取对象,请在画线处加入代码完成此程序[ ]. import java.util.*; import ja 更多相关问题 [问答题,简答题] "三好一满意"是什么? [单 ...
- Feign从配置文件中读取url
Feign的url和name都是可配置的,就是从配置文件中读取的属性值,然后用占位符引用就可以了: ${rpc.url} @FeignClient(name = "me",url ...
- 【Spring Boot】从配置文件中读取配置参数
前言 在生产环境中,经常会用到各种各样的参数,为了避免代码太过死板,一般将参数写入配置文件,然后需要用到参数的时候从配置文件中读取,下面总结出几种从配置文件中读取配置参数的方法. 环境搭建 现有配置文 ...
- Spring—使用类加载从配置文件中读取配置
引言 SpringBoot中可以使用@Value直接resources目录下的配置文件中读取相关配置参数.但是非微服务模式下,可以使用类加载机制进行获取. 模板 public class Prop ...
- java从配置文件中读取参数
java从配置文件中读取参数的方式 有的时候我们需要将一些固定的配置信息写到yml文件中去,然后在类中在读取 #首先就得先在yml文件中配置参数 upload:param:"test&quo ...
- springboot取yml中的值_SpringBoot 中从yml配置文件中读取常用的参数值
SpringBoot现在基本上都是使用application-XXX.yml(生产环境为pro,开发测试环境为dev)来配置项目中的一些配置条件,在springboot中还可以通过从yml文件中将ym ...
- python如何调用参数配置文件_【Python学习笔记七】从配置文件中读取参数
将一些需要经常更改的参数存放在配置文件中,通过读取配置文件来获取参数,这样修改以及使用起来比较方便 1.首先是配置文件的写法,如下一个environment.ini文件: a:里面"[]&q ...
- 使用Flink时从Kafka中读取Array[Byte]类型的Schema
使用Flink时,如果从Kafka中读取输入流,默认提供的是String类型的Schema: val myConsumer = new FlinkKafkaConsumer08[String](&qu ...
最新文章
- 建立新冠病毒群体免疫屏障——数学建模
- 硬件断点 DrxHook
- django模型的字段类型和关系
- hdu4027Can you answer these queries?
- Oracle Comment 获取并修改表或字段注释
- LeetCode – Refresh – Exceel Sheet Column Number
- Mac上设置图片或视频的默认打开软件的方法
- 基于51单片机的超声波倒车雷达防撞系统 proteus仿真 LCD1602显示
- 局部光照与全局光照的区别
- 图像影音型计算机主板选择什么,开启4K新时代 七款家用影音主板推荐
- 电子料盘 电容 物料标识识别
- 用java 把字符串写进文本,Java将字符串写入文本文件代码示例
- 从键盘输入若干个学生成绩,计算出平均成绩。
- 卷积神经网络(CNN)详解
- 抽象类是不是必须要有抽象方法
- ROS学习笔记---ros的通信机制
- linux服务器使用certbot免费安装ssl证书
- 图书管理系统-数据库设计
- 01:高斯噪声和椒盐噪声
- Vultr centost7一键安装BBR工具教程
热门文章
- 喜庆传统中国红色纹理背景,吉庆节日必备!
- 东方韵味传统迎接新年|旭日东升的吉利日出好运插画素材模板
- 什么?你的电商网页不够时尚?看这里
- UI设计素材之按钮和选框,悠闲素材帮你轻松搞定设计。
- 平面设计师如何利用图片素材提升工作效率
- mysql 5.7 升级 8.0_MySQL5.7升级到8.0过程详解
- 如何判断 cxgrid 双击了哪一列_学会根据三视图判断组成几何体的个数,助你中考数学满分...
- python的random模块怎么写_Python常用标准库之random模块
- QT 在最新版mac下无法显示变量的问题处理
- libcap-ng库旨在使具有posix功能的编程比传统的libcap库容易得多