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

【BlogBook书】1、AppSettings:自定义参数配置

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

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

本章节是第一种——通过单例模式,将appsettings.json文件中的所有配置,在项目启动的时候,统一添加到了AppSettings对象实例中。

一、相关的服务注册

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
builder.Host
    .ConfigureAppConfiguration((hostingContext, config) =>
    {
        config.Sources.Clear();
        config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false);
        config.AddConfigurationApollo("appsettings.apollo.json");
    });
    
builder.Services.AddSingleton(new AppSettings(builder.Configuration));

二、使用方式

直接类似静态类的方式使用即可,多种方式均可使用,看个人的爱好习惯:

1、按一定的层级路径,组成多个逗号隔开的一组参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Permissions.IsUseIds4 = AppSettings.app("Startup", "IdentityServer4", "Enabled").ObjToBool();
RoutePrefix.Name = AppSettings.app("AppSettings", "SvcName").ObjToString();

2、按照一定的层级路径,组成字符串数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Permissions.IsUseIds4 = AppSettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool();
RoutePrefix.Name = AppSettings.app(new string[] { "AppSettings", "SvcName" }).ObjToString();

3、按照一定的层级路径,组成冒号隔开的字符串

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string PermissionServName = AppSettings.GetValue("ApiGateWay:PermissionServName");
string PermissionServGroup = AppSettings.GetValue("ApiGateWay:PermissionServGroup");
string PermissionServUrl = AppSettings.GetValue("ApiGateWay:PermissionServUrl");

4、返回结果除了是字符串以外,也支持返回List泛型数组或对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<MutiDBOperate> listdatabase = AppSettings.app<MutiDBOperate>("DBS")
    .Where(i => i.Enabled).ToList();
 List<Urlobj> WhiteList = _cache.Cof_GetICaching<List<Urlobj>>("WhiteList", () => AppSettings.app<Urlobj>("WhiteList"), 10);

5、项目也同时支持Apollo,可以直接配置使用

appsettings.apollo.json 文件中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  //apollo 配置
  "Apollo": {
    "Enable": false,
    "Config": {
      "AppId": "blog.core",
      "Env": "DEV",
      "MetaServer": "http://localhost:8080/",
      "ConfigServer": [ "http://localhost:8080/" ]
    },
    "Namespaces": [ //Namespaces的数据格式Properties,Xml,Json,Yml,Yaml,Txt
      {
        "Name": "test",
        "Format": "json"
      }
    ]
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[BlogCore操作文档1] AppSettings:参数配置获取
很荣幸,也很感谢在过去的四年多的时间,大家对BCVP社区、对BlogCore项目的支持,我也一直没有太推广,也没有申请其他的组织的推广资源,都是靠各位精神股东的默默支持和口口相传,才一直坚持着✨,目前Github的Star数4.2k,Fork数1.2k,也算是国内NetCore项目中,坚持的比较长的了,虽然我在2022年维护不多。不过好在有开发组其他几位小伙伴的帮忙,也是提交了一些Commit的。
老张的哲学
2023/08/23
3150
[BlogCore操作文档1] AppSettings:参数配置获取
【BlogBook书】2、Options:参数选项
本章节是第二种—— 将appsettings.json文件中的所有配置,通过依赖注入的方式,填充到各自对应的对象实例里。
老张的哲学
2024/01/15
1640
【BlogBook书】2、Options:参数选项
ABP微服务系列学习-对接Apollo配置中心
前面我们把服务都已经成功启动,并且对接前端Angular界面。 但是在微服务结构中,多个服务意味着需要配置多个配置文件,这时就需要引入配置中心这玩意了。 配置中心有很多现成的方案,比如携程的阿波罗,K8S自带的ConfigMap等等。 这里介绍一下如何对接携程的阿波罗配置中心。
饭勺oO
2023/10/18
2930
ABP微服务系列学习-对接Apollo配置中心
可能是Asp.net Core On host、 docker、kubernetes(K8s) 配置读取的最佳实践
为了不违反广告法,我竭尽全力,不过“最佳实践”确是标题党无疑,如果硬要说的话 只能是个人最佳实践。
乔达摩@嘿
2020/09/11
1.1K0
可能是Asp.net Core On host、 docker、kubernetes(K8s) 配置读取的最佳实践
构建自己的简单微服务架构(开源)
本篇仅作引导,内容较多,如果阅读不方便,可以使用电脑打开我们的文档官网进行阅读。如下图所示:
雪雁-心莱科技
2019/05/23
2.8K0
构建自己的简单微服务架构(开源)
.NET 云原生架构师训练营(模块二 基础巩固 配置)--学习笔记
2.2.3 核心模块--配置 IConfiguration Options ASP.NET Core 中的配置:https://docs.microsoft.com/zh-cn/aspnet/core
郑子铭
2020/12/16
3800
.NET 云原生架构师训练营(模块二 基础巩固 配置)--学习笔记
ASP.NET Core 2.0 : 五.服务是如何加载并运行的, Kestrel、配置与环境
"跨平台"后的ASP.Net Core是如何接收并处理请求的呢? 它的运行和处理机制和之前有什么不同? 本章从"宏观"到"微观"地看一下它的结构以及不同时期都干了些什 本章主要内容如下: ASP.NE
FlyLolo
2018/05/17
1.1K0
ASP.NET Core 2.2 : 二十二. 多样性的配置方式
    大多数应用都离不开配置,本章将介绍ASP.NET Core中常见的几种配置方式及系统内部实现的机制。(ASP.NET Core 系列目录)
FlyLolo
2019/09/23
6030
ASP.NET Core 2.2 : 二十二. 多样性的配置方式
理解 ASP.NET Core - 配置(Configuration)
链接:cnblogs.com/xiaoxiaotank/p/15367747.html
郑子铭
2021/10/26
2.4K0
理解 ASP.NET Core - 配置(Configuration)
ASP.NET Core快速入门(第2章:配置管理)--学习笔记
课程链接:http://video.jessetalk.cn/course/explore
郑子铭
2021/01/13
7190
ASP.NET Core快速入门(第2章:配置管理)--学习笔记
调用API修改Ocelot的配置文件
Ocelot是一个基于.NET Core的Web API服务网关开源项目,功能比较强大,Github项目地址为:https://github.com/ThreeMammals/Ocelot,关于Ocelot的学习资料可以看看张善友的网站:http://www.csharpkit.com/apigateway.html。
oec2003
2019/07/19
1.6K0
调用API修改Ocelot的配置文件
.Net Core 自定义配置源从配置中心读取配置
配置,几乎所有的应用程序都离不开它。.Net Framework时代我们使用App.config、Web.config,到了.Net Core的时代我们使用appsettings.json,这些我们再熟悉不过了。然而到了容器化、微服务的时代,这些本地文件配置有的时候就不太合适了。当你把本地部署的服务搬到docker上后,你会发现要修改一个配置文件变的非常麻烦。你不得不通过宿主机进入容器内部来修改文件,也许容器内还不带vi等编辑工具,你连看都不能看,改都不能。更别说当你启动多个容器实例来做分布式应用的时候,一个个去修改容器的配置,这简直要命了。 因为这些原因,所以“配置中心”就诞生了。配置中心是微服务的基础设施,它对配置进行集中的管理并对外暴露接口,当应用程序需要的时候通过接口读取。配置通常为Key/Value模式,然后通过http接口暴露。好了,配置中心不多说了,感觉要偏了,这次是介绍怎么自定义一个配置源从配置中心读取配置。废话不多说直接上代码吧。
MJ.Zhou
2019/07/02
1.1K0
从壹开始学习NetCore 44 ║ 最全的 netcore 3.0 升级实战方案
缘起 1、哈喽大家中秋节(后)好呀!感觉已经好久没有写文章了,但是也没有偷懒哟,我的视频教程《系列一、NetCore 视频教程(Blog.Core)》也已经录制八期了,还在每周末同步更新中,欢迎大家多多指教。 2、除此之外呢,我也在平时的时间帮朋友开发了一个小项目,就是使用 .net mvc+vue+ele+mongo 框架写的项目,之前一直想着用mvc结合着vue写,这次也终于上手了,不过是一个小的demo,因为是朋友的项目,所以就不开源了。 言归正传,👉 从2018年8月就开始听说 netcore 要
老张的哲学
2022/04/10
9040
从壹开始学习NetCore 44 ║ 最全的 netcore 3.0 升级实战方案
从头编写 asp.net core 2.0 web api 基础框架 (3)
Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratc
solenovex
2018/03/01
1.6K0
从头编写 asp.net core 2.0 web api 基础框架 (3)
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
携程 Apollo 配置中心传统 .NET 项目集成实践
可能由于 Apollo 配置中心的客户端源码一直处于更新中,导致其相关文档有些跟不上节奏,部分文档写的不规范,很容易给做对接的新手朋友造成误导。
Esofar
2019/08/07
8300
携程 Apollo 配置中心传统 .NET 项目集成实践
ASP.NET Core 使用功能开关控制路由访问的实现
在现代应用开发中,**功能开关(Feature Toggle)**是一种常用的技术,可以动态地控制应用功能的启用和禁用。功能开关在敏捷开发中尤其重要,因为它能让开发者在不部署新版本的情况下对特定功能进行快速调试、灰度发布或回滚。
Michel_Rolle
2024/11/25
2K0
abp集成IdentityServer4和单点登录
在abp开发的系统后,需要使用这个系统作单点登录,及其他项目登录账号依靠abp开发的系统。在官方文档上只找到作为登录服务Identity Server Integration,但是host项目却无法使用登录服务生成的Token获取数据。所有的搜索结果包括abp的issue都是说去看identity server4的文档。我比较笨,文档看了还是不会。好在最后还是试出来了。
用户6362579
2020/02/13
5.2K2
.NET Core微服务之基于Apollo实现统一配置中心
  在微服务架构环境中,项目中配置文件比较繁杂,而且不同环境的不同配置修改相对频繁,每次发布都需要对应修改配置,如果配置出现错误,需要重新打包发布,时间成本较高,因此需要做统一的配置中心,能做到自动更新配置文件信息,解决以上问题。
Edison Zhou
2018/08/04
2.3K0
.NET Core微服务之基于Apollo实现统一配置中心
ASP.NET Core 2.2 : 二十三. 深入聊一聊配置的内部处理机制
上一章介绍了配置的多种数据源被注册、加载和获取的过程,本节看一下这个过程系统是如何实现的。(ASP.NET Core 系列目录)
FlyLolo
2019/09/24
8050
ASP.NET Core 2.2 : 二十三. 深入聊一聊配置的内部处理机制
推荐阅读
相关推荐
[BlogCore操作文档1] AppSettings:参数配置获取
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验