首页 > 其他分享 >dotnet封装一个配置工具类

dotnet封装一个配置工具类

时间:2024-05-30 15:55:34浏览次数:15  
标签:封装 Get app var key dotnet 工具 config public

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();

标签:封装,Get,app,var,key,dotnet,工具,config,public
From: https://www.cnblogs.com/zhulongxu/p/18222549

相关文章

  • 【爬虫软件】用Python开发的小红书详情批量采集工具,含笔记正文、转评赞藏等
    一、背景介绍1.1爬取目标用python开发的爬虫采集软件,可自动按笔记链接抓取笔记的详情数据。为什么有了源码还开发界面软件呢?方便不懂编程代码的小白用户使用,无需安装python,无需改代码,双击打开即用!软件界面截图:爬取结果截图:结果截图1:结果截图2:结果截图3:以上。1.2......
  • 源代码管理工具介绍:Github
    GitHub是一个广泛使用的源代码管理工具,基于Git版本控制系统。它提供了丰富的功能,使开发者能够轻松地进行代码管理、协作和项目管理。以下是我对GitHub的介绍,包括了它的使用方法和优点:使用方法创建GitHub账户要使用GitHub,首先需要创建一个账户。访问GitHub官网,点击“......
  • 源代码管理工具
    我们小组打算使用Github来管理项目的代码Github介绍GitHub是一个基于云端的代码托管平台,提供版本控制、协作开发和代码管理等功能。它支持Git版本库格式,拥有1亿开发人员和400万组织机构。使用GitHub的基本步骤包括注册账户、创建仓库、安装和配置Git,以及进行基本的Git操作,如创建......
  • GitHub 作为主流源代码管理工具的特点及其在 AR 精灵项目中的运用
    GitHub是一个基于Web的版本控制和协作平台,建立在Git版本控制系统之上。Git由Linux操作系统的创建者LinusTorvalds开发,是一个分布式版本控制系统,广泛应用于软件开发项目中。GitHub提供了丰富的功能,帮助开发人员轻松管理和跟踪代码更改,与他人共享工作,并在项目上协作。本......
  • 源代码管理工具
    GitHub重要特点的详细介绍:分布式版本控制-GitGitHub基于Git,这是一个由LinusTorvalds设计的分布式版本控制系统。Git非常高效,能够处理从小型到非常大型的项目。它支持创建分支和合并,支持代码的快速迭代,并且可以很容易地管理不同开发人员之间的代码变更。协作工具-分支......
  • 源代码管理工具
    源代码管理工具介绍源代码工具的作用1).能够追踪一个项目从诞生到一直定案的过程2).记录一个项目所有内容的变化3).方便查阅特定版本的修订情况源代码管理工具可以判断每一行代码里面每一个字符是谁写的。使用源代码管理工具的好处:由于使用简单,不会增加工作量。不会对现有工......
  • 2252416 黄子轩 源代码管理工具
    首先,GitHub是一个基于web的版本控制和代码管理的服务平台,它使用Git作为版本库的格式进行代码管理。我们可以将GitHub看作是一个巨大的代码仓库,我们可以在这个仓库中存储、共享和协作我们的代码。这样就可以省去我们小组间代码相互传来传去的麻烦。对于我们团队项目来说,GitHub有以......
  • Java开发工具|推荐收藏
    Java是一种广泛使用的编程语言,拥有多种开发工具,包括集成开发环境(IDE)和代码编辑器。以下是几种常见的Java开发工具以及它们的比较:Eclipse是一款流行的开源IDE,广泛用于Java开发。它具有强大的代码编辑、调试和性能分析功能,支持插件扩展,可以满足不同开发需求。Eclipse......
  • 第十三周-源代码管理工具
    gitee码云是一个非常方便的源代码托管平台,功能与github非常相似,而且方便国内用户使用。这款在线源代码管理平台只需要你打开网页即可使用。点击右上角的“+”,可以选择新建仓库、新建组织、从github导入等,非常方便用户操作。新建仓库则是创建一个你的项目,可以选择初始化仓库、......
  • jmeter压力测试工具
    1.工具下载地址:https://jmeter.apache.org/download_jmeter.cgi2.解压,启动程序 3.修改软件语言 4.新建线程组  5新建http请求  6添加http请求头 7添加查看结果选项,把这三个都加上 扩展1,自带的函数扩展2,使用自带函数  ${__RandomString(10,sadjkadu......