dotnet封装一个配置工具类
- using Microsoft.Extensions.Configuration;
- namespace web.tools;
- public class settingHelper
- {
- public static IConfiguration _config { get; set; }
- public settingHelper(IConfiguration configuration)
- {
- _config = configuration;
- }
- /// <summary>
- /// 过期偏移时间
- /// </summary>
- public static int ClockSkew => Convert.ToInt32(Get("JwtClockSkew"));
- /// <summary>
- /// 获取配置文件
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="key"></param>
- /// <returns></returns>
- public static T? Get<T>(string key)
- where T : class, new()
- {
- var model = new T();
- _config.Bind(key, model);
- return model;
- }
- public static string Get(string key)
- {
- try
- {
- return _config[key];
- }
- catch
- {
- return null;
- }
- }
- public static string Get(string key, bool IsConn = false)
- {
- string value;
- try
- {
- if (IsConn)
- {
- value = _config.GetConnectionString(key);
- }
- else
- {
- value = _config[key];
- }
- }
- catch (Exception)
- {
- value = null;
- }
- return value;
- }
- public static IConfigurationSection GetSection(string key)
- {
- try
- {
- return _config.GetSection(key);
- }
- catch
- {
- return null;
- }
- }
- }
配置工具类的注册和使用
- var builder = WebApplication.CreateBuilder(args);
- // Add services to the container.
- // 引入配置文件
- var basePath = AppContext.BaseDirectory;
- var path = Path.Combine(basePath, "Files");
- var _config = new ConfigurationBuilder()
- .SetBasePath(basePath)
- .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .Build();
- // SetBasePath 将基于文件的提供程序的 FileProvider 设置为具有基路径的 PhysicalFileProvider。
- // AddJsonFile 将 JSON 配置源添加到 builder。
- // Build 使用在 Sources 中注册的提供程序集中的 键和值 生成.
- builder.Services.AddSingleton(new settingHelper(_config));
- builder.Services.AddControllers();
- // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
- builder.Services.AddEndpointsApiExplorer();
- builder.Services.AddSwaggerGen();
- var app = builder.Build(); // app 是 WebApplication对象
- //WebApplication 类
- //ASP.NET Core 有3个 Host 类,是ASP.NET Core中用于初始化,生命周期管理,启动Web 服务的最重要的类。所以详细重点分析一下这几个类,分别是:
- //WebApplication,ASP.NET Core 6 引入的替代WebHost的类,可以用于 Web App或者 Web API
- //Host,非 Web App或者Web API 使用的 Host 类,比如纯控制台,或者 Windows Service。
- //WebHost,ASP.NET Core 6之前的版本使用的Host类。
- // WebApplication 2 个静态方法
- //CreateBuilder(),用于创建WebApplicationBuilder 对象,再用 Build 模式添加一些中间件,再创建WebApplication对象。
- //Create(),用于直接创建一个WebApplication对象,会默认添加和配置一些中间件。
- //MapGet(),模式匹配 HTTP Get请求,映射到某个endpoint。
- app.MapGet("/", () => "Hello World!");
- // 通过 WebApplication对象 添加内置的或者自定义的中间件
- // Configure the HTTP request pipeline.
- if (app.Environment.IsDevelopment())
- {
- app.UseSwagger();
- app.UseSwaggerUI();
- }
- var isUseSwagger = settingHelper.Get("UseSwagger"); // 获取是否启用 Swagger 选项
- var conn = settingHelper.Get("ConnectionStrings:SugarConnectString"); // 使用Get获取字符串中的数据库连接字符串
- var conn1 = settingHelper.Get("SqlDbType",true); // 获取数据库类型 如果第二个参数 true 直接获取 ConnectionStrings 里面key值
- app.UseHttpsRedirection();
- app.UseAuthorization();
- app.MapControllers();
- app.Run();
dotnet封装一个配置工具类的更多相关文章
- 关于TornadoFx和Android的全局配置工具类封装实现及思路解析
原文地址: 关于TornadoFx和Android的全局配置工具类封装实现及思路解析 - Stars-One的杂货小窝 目前个人开发软件存在设置页面,可以让用户自定义些设置,但我发现,存储数据的代码逻 ...
- 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫
前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,本文记录免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作 ...
- Redis操作Hash工具类封装,Redis工具类封装
Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...
- Redis操作字符串工具类封装,Redis工具类封装
Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...
- 封装一个Ajax工具函数
/*封装一个ajax工具函数*/ window.$ = {}; /*通过$定义一个ajax函数*/ /* * 1. type string 请求的方式 默认是get * 2. url ...
- 分享一个Snackbar工具类 SnackbarUtils;
分享一个Snackbar工具类,源代码也是在Github上面找的,自己做了一下修改: 功能如下: 1:设置Snackbar显示时间长短 1.1:Snackbar.LEN ...
- java中定义一个CloneUtil 工具类
其实所有的java对象都可以具备克隆能力,只是因为在基础类Object中被设定成了一个保留方法(protected),要想真正拥有克隆的能力, 就需要实现Cloneable接口,重写clone方法.通 ...
- Python_selenium封装一个浏览器引擎类
Python_selenium封装一个浏览器引擎类 现在我们在编写一个类,叫浏览器引擎类(此例为:启动浏览器),将文件名命名为browser.py,代码下面通过更改一个字符串的值,运用if语句判断和控 ...
- springboot封装JsonUtil,CookieUtil工具类
springboot封装JsonUtil,CookieUtil工具类 yls 2019-9-23 JsonUtil public class JsonUtil { private static Obj ...
- 编写Java程序,创建一个数学工具类,将该类设计为final类,Final 修饰符的使用。
返回本章节 返回作业目录 需求说明: 创建一个数学工具类. 将该类设计为final类. 将该类的构造方法的访问权限定义为私有,以防止外界实例化该类. 在该类定义静态double类型常量π,其值为3.1 ...
随机推荐
- appium python 点击坐标 tap
appium python 点击坐标 tap 有时候定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?(面试经常会问)那就拿出绝招:点元素所在位置的坐标 tap用法 1.tap是模拟手指点击, ...
- 【Mybatis-Plus】联表分页查询实现
参考文章: https://blog.csdn.net/weixin_43847283/article/details/125822614 上上周写的SQL案例确实可以重构,所以搬到Demo里面测试看 ...
- 【Scala】01 基础了解
Features 特性 1.基于JVM,完全兼容Java 2.同样具有跨平台,可移植,垃圾回收 3.比Java更加的面向对象[完全面向对象] 4.函数式编程 5.面向大数据处理,对集合容器框架有一定的 ...
- 【Vue】06 Webpack Part2 打包命令配置
Webpack 配置: 入口 & 出口: 就是我们使用的打包命令: 一个是对什么文件执行,这就是入口 一个是输出到什么文件,这就是出口 每一次打包使用这个命令都必须指定这两个必要的参数 所以将 ...
- 中国版的huggingface——始智AI-wisemodel
新闻: 始智AI-wisemodel社区正式上线,目标打造中国版"HuggingFace" 首先要知道,AI火热了7,8年了,不论是国内还是国外一直有要搞模型分享的网站,但是这东西 ...
- Tensorflow1.14中placeholder.shape和tf.shape(placeholder)的区别
最近在看TensorFlow的代码,还是1.14版本的TensorFlow的,代码难度确实比pytorch的难上不是多少倍,pytorch的代码看一遍基本能看懂个差不多,TensorFlow的代码看一 ...
- LVGL btn组件
/************************************************* * * file name:widget_line.c * author :momolyl@126 ...
- Java反射初探123456789
牛逼的框架都反射,不要问我为什么,因为我也不知道 可能是因为生成了class文件没法实例化,所以只能反射创建对象,但是在spring中,ioc就是反射实现的控制反转 看Spring4.x企业级开发实战 ...
- 跨越时空的对话:如何使用AI阅读工具ChatDOC快速建立数字化身?
跨越时空的对话:如何使用 ChatDOC 快速建立数字化身?以史蒂夫·乔布斯 AI 为例 开门见山,这篇文章主要介绍如何将 AI 改造为靠谱.好用.基于某个人物的数字化身.比如,乔布斯 AI.马斯克 ...
- 软件开发工程师,几款常用的APP,你用过几款?最后一个测试网络必备
作为一名程序员,手机里一定有几个常用的app,下面给大家推荐几款. 1. CSDN 国内最大编程论坛:虽然有多少人吐槽现在使用csdn就像屎里淘金, 但是不得不承认他仍然是大家搜索技术资料.问题的首选 ...