分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Asp.Net Core 在不能使用注入方式的情况下读取配置文件

发布时间:2023-09-06 01:49责任编辑:顾先生关键词:配置

最近在用Asp.Net Core 做项目,遇到一个在不能使用注入的类中读取配置文件的问题。

大家都知道在core中推荐使用注入的方式读取配置文件,这样读取到的值是强类型的,弥补了web.config的缺陷。

当我用着正爽的时候遇到了一个静态类也需要读取配置文件的问题,纠结了几天才又了这篇博文。

最初的版本是下面这个样子

public static class ConfigurationManager{ ???static IConfiguration Configuration; ???static ConfigurationManager() ???{ ???????var builder = new ConfigurationBuilder() ???????.SetBasePath(Directory.GetCurrentDirectory()) ???????.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) ???????.AddEnvironmentVariables(); ???????Configuration = builder.Build(); ???} ???public static string GetValue(string key) ???{ ???????return Configuration[key]; ???} ???public static T GetValue<T>(string key) ???{ ???????return Configuration.GetValue<T>(key); ???}}

上面的代码只能读取配置appsettings.json中的配置,由于我们的开发环境有好多套,这个并没有满足我们的需求

但是这个工具类是静态的不能将环境变量注入进来,这是困扰我的一个问题,最后终于在师傅的帮助下有了解决方案,也就是下面这个版本

public static class ConfigurationManagerV2{ ???static IConfiguration Configuration; ???static ConfigurationManagerV2() ???{
?????? // 这里读取环境变量 ???????var provider = new EnvironmentVariablesConfigurationProvider(); ???????provider.Load(); ???????provider.TryGet("ASPNETCORE_ENVIRONMENT", out string environmentName); ???????var builder = new ConfigurationBuilder() ???????.SetBasePath(Directory.GetCurrentDirectory()) ???????.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) ?????? .AddJsonFile($"appsettings.{environmentName}.json", optional: true, reloadOnChange: true) ???????.AddEnvironmentVariables(); ???????Configuration = builder.Build(); ???} ???/// <summary> ???/// ????/// </summary> ???/// <param name="key">不区分大小写</param> ???/// <returns></returns> ???public static string GetValue(string key) ???{ ???????return Configuration[key]; ???} ???public static T GetValue<T>(string key) ???{ ???????return Configuration.GetValue<T>(key); ???}}

这样我们就可以在静态文件中使用配置文件,并且可以根据环境变量来读取不同的配置文件。

大功告成!

Asp.Net Core 在不能使用注入方式的情况下读取配置文件

原文地址:https://www.cnblogs.com/taohonggou/p/8858956.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved