前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【BlogBook书】2、Options:参数选项

【BlogBook书】2、Options:参数选项

作者头像
老张的哲学
发布于 2024-01-15 09:40:23
发布于 2024-01-15 09:40:23
16700
代码可运行
举报
文章被收录于专栏:NetCore 从壹开始NetCore 从壹开始
运行总次数:0
代码可运行

框架中有两种获取参数配置的方式。

本章节是第二种—— 将appsettings.json文件中的所有配置,通过依赖注入的方式,填充到各自对应的对象实例里。

注意:本方法只支持根节点的参数配置,如果想要获取非根节点的,可以做个嵌套的子类。

一、相关的服务注册

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 初始化配置
builder.Host
    .ConfigureAppConfiguration((hostingContext, config) =>
    {
        hostingContext.Configuration.ConfigureApplication();
    });
builder.ConfigureApplication();
app.ConfigureApplication();
app.UseApplicationSetup();

// 配置注册
builder.Services.AddAllOptionRegister();

二、使用方式

有2种方式均可使用,看个人的爱好习惯。

使用方式一,静态方式:

1、appsettings.json中定义某个配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Redis": {
  "Enable": false,
  "ConnectionString": "127.0.0.1:6379",
  "InstanceName": ""
},

2、按照一定的层级路径,定义具体的实体类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/// <summary>
/// 缓存配置选项
/// </summary>
public sealed class RedisOptions : IConfigurableOptions
{
    /// <summary>
    /// 是否启用
    /// </summary>
    public bool Enable { get; set; }

    /// <summary>
    /// Redis连接
    /// </summary>
    public string ConnectionString { get; set; }

    /// <summary>
    /// 键值前缀
    /// </summary>
    public string InstanceName { get; set; }
}

3、直接调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var cacheOptions = App.GetOptions<RedisOptions>();

使用方式二,依赖注入方式:

直接在构造函数中,通过IOptions<>注入即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private readonly SeqOptions _seqOptions;

/// <summary>
/// ValuesController
/// </summary>

public ValuesController(IOptions<SeqOptions> seqOptions)
{
    // 测试
    _seqOptions = seqOptions.Value;
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NetCore 从壹开始 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【BlogBook书】1、AppSettings:自定义参数配置
本章节是第一种——通过单例模式,将appsettings.json文件中的所有配置,在项目启动的时候,统一添加到了AppSettings对象实例中。
老张的哲学
2024/01/15
2720
【BlogBook书】1、AppSettings:自定义参数配置
【BlogBook书】4、Cache:缓存
框架已经将缓存集成到了官方的IDistributedCache分布式缓存接口,可以直接使用内存缓存和分布式缓存。
老张的哲学
2024/01/15
2430
【BlogBook书】4、Cache:缓存
.NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入
上篇文章我给大家讲解了ASP.NET Core的概念及为什么使用它,接着带着你一步一步的配置了.NET Core的开发环境并创建了一个ASP.NET Core的mvc项目,同时又通过一个实战教你如何在页面显示一个Content的列表。不知道你有没有跟着敲下代码,千万不要做眼高手低的人哦。这篇文章我们就会设计一些复杂的概念了,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等。俗话说,授人以鱼不如授人以渔,所以文章旨在带着大家分析源码,让大家能知其然更能知其所以然。为了偷懒,继续使用上篇文章的例子了!有兴趣的朋友可以加群637326624相互交流!
依乐祝
2018/11/28
7640
.NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入
深入理解 ASP.NET Core 中的 IOptions
在 ASP.NET Core 中,配置管理是一个核心功能,它允许我们以灵活的方式读取和管理应用程序的配置信息。IOptions 是 ASP.NET Core 提供的一种强大的配置模式,用于将配置数据注入到应用程序的各个部分。通过 IOptions,我们可以轻松地实现配置的解耦、动态更新和依赖注入。
郑子铭
2025/04/23
880
深入理解 ASP.NET Core 中的 IOptions
.NET Core微服务之基于Apollo实现统一配置中心
  在微服务架构环境中,项目中配置文件比较繁杂,而且不同环境的不同配置修改相对频繁,每次发布都需要对应修改配置,如果配置出现错误,需要重新打包发布,时间成本较高,因此需要做统一的配置中心,能做到自动更新配置文件信息,解决以上问题。
Edison Zhou
2018/08/04
2.3K0
.NET Core微服务之基于Apollo实现统一配置中心
ASP.NET Core技术研究-探秘Host主机启动过程
当我们将原有ASP.NET 应用程序升级迁移到ASP.NET Core之后,我们发现代码工程中多了两个类Program类和Startup类。
李明成
2020/04/15
1.5K0
ASP.NET Core技术研究-探秘Host主机启动过程
ASP.NET Core 6框架揭秘实例演示[21]:如何承载你的后台服务
借助 .NET提供的服务承载(Hosting)系统,我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中。任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载,ASP.NET Core应用最终也体现为这样一个承载服务。(本篇提供的实例已经汇总到《ASP.NET Core 6框架揭秘-实例演示版》)
蒋金楠
2022/05/09
4740
ASP.NET Core 6框架揭秘实例演示[21]:如何承载你的后台服务
ASP.NET Core 选项模式源码学习Options Configure(一)
ASP.NET Core 后我们的配置变得更加轻量级了,在ASP.NET Core中,配置模型得到了显著的扩展和增强,应用程序配置可以存储在多环境变量配置中,appsettings.json用户机密等 并可以通过应用程序中的相同界面轻松访问,除此之外,ASP.NET中的新配置系统允许使用Options的强类型设置。
HueiFeng
2020/01/22
2.4K0
1、修改集成方式
《微软Azure配置中心 App Configuration (一):轻松集成到Asp.Net Core》已经介绍了Asp.net Core怎么轻易的接入azure 配置中心App Configuration(下称azure 配置中心);
乔达摩@嘿
2022/09/26
4440
ASP.NET Core快速入门(第2章:配置管理)--学习笔记
课程链接:http://video.jessetalk.cn/course/explore
郑子铭
2021/01/13
7210
ASP.NET Core快速入门(第2章:配置管理)--学习笔记
asp.net core 系列之Configuration
在ASP.NET Core中的App configuration 是通过configuration providers基于key-value对建立的。Configuration providers读取配置文件到key-value,从多种配置源中:
Vincent-yuan
2019/09/11
1.5K0
asp.net core 系列之Configuration
ASP.NET Core 2.0 : 五.服务是如何加载并运行的, Kestrel、配置与环境
"跨平台"后的ASP.Net Core是如何接收并处理请求的呢? 它的运行和处理机制和之前有什么不同? 本章从"宏观"到"微观"地看一下它的结构以及不同时期都干了些什么. ASP.NET Core
FlyLolo
2018/06/21
1K0
ASP.NET Core 3.0 : 二十四. 配置的Options模式
上一章讲到了配置的用法及内部处理机制,对于配置,ASP.NET Core还提供了一种Options模式。(ASP.NET Core 系列目录)
FlyLolo
2019/09/29
1K0
.Net Core with 微服务 - Consul 配置中心
上一次我们介绍了Elastic APM组件。这一次我们继续介绍微服务相关组件配置中心的使用方法。本来打算介绍下携程开源的重型配置中心框架 apollo 但是体系实在是太过于庞大,还是让我爱不起来。因为前面我们已经介绍了使用Consul 做为服务注册发现的组件,那么干脆继续使用 Consul 来作为配置中心吧。Consul 除了服务注册发现功能,还有个 Key/Value 存储的功能,我们把本地的 appsettings.json 文件的内容搬到 Key/Value 上就可以实现配置中心了。
MJ.Zhou
2021/07/14
9400
.Net Core with 微服务 - Consul 配置中心
ASP.NET Core 网站运行时修改设置如何自动生效
在ASP.NET Core中,如果修改了appsettings.json中的设置,那么默认情况下就得重启网站才能生效。有没有办法在修改设置后自动刷新并应用呢?
Edi Wang
2019/07/08
3K0
ASP.NET Core 网站运行时修改设置如何自动生效
ASP.NET Core appsettings.json文件(9)《从零开始学ASP.NET CORE MVC》:
在本视频中,我们将讨论ASP.NET Core 项目中appsettings.json文件的重要性。
角落的白板报
2019/05/05
1.4K0
手把手教你写dotnet core(读取配置文件)
一般dotnet core配置文件都位于项目目录下,名为appsettings.json
李国宝
2020/01/02
2.1K0
ASP.NET Core 2.2 : 二十三. 深入聊一聊配置的内部处理机制
上一章介绍了配置的多种数据源被注册、加载和获取的过程,本节看一下这个过程系统是如何实现的。(ASP.NET Core 系列目录)
FlyLolo
2019/09/24
8130
ASP.NET Core 2.2 : 二十三. 深入聊一聊配置的内部处理机制
Asp.net Core 2.1新功能Generic Host(通用主机)深度学习
这是在Asp.Net Core 2.1加入了一种新的Host,现在2.1版本的Asp.Net Core中,有了两种可用的Host。
码农阿宇
2018/08/31
1.4K0
Asp.net Core 2.1新功能Generic Host(通用主机)深度学习
《ASP.NET Core 微服务实战》-- 读书笔记(第9章)
或者,如果不希望在命令行中显示传入值,也可以把来自启动环境的环境变量转发到容器内部,只要不传入包含值的等式即可,例如:
郑子铭
2021/01/13
5480
《ASP.NET Core 微服务实战》-- 读书笔记(第9章)
推荐阅读
相关推荐
【BlogBook书】1、AppSettings:自定义参数配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验