千家信息网

.Net Core3.0如何配置Configuration

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这篇文章给大家分享的是有关.Net Core3.0如何配置Configuration的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。准备.NET core和.NET项目配置上
千家信息网最后更新 2025年02月06日.Net Core3.0如何配置Configuration

这篇文章给大家分享的是有关.Net Core3.0如何配置Configuration的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

准备

.NET core和.NET项目配置上有了很大的改变,支持的也更加丰富了比如命令行,环境变量,内存中.NET对象,设置文件等等。.NET项目我们常常把配置信息放到webConfig 或者appConfig中。配置相关的源码https://github.com/aspnet/Extensions;如果打开源码项目 如果遇到以下错误,未遇到直接跳过。

错误提示: error : The project file cannot be opened by the project system, because it is missing some critical imports or the referenced SDK cannot be found. Detailed Information:

解决办法:查看本地安装的sdk 与 global.json中制定的版本是否一致:然后修改即可

开始

新建个Asp.net Core web应用程序系统默认创建了appsettings.json ;在应用启动生成主机时调用CreateDefaultBuilder方法,默认会加载 appsettings.json。代码如下:
 public static IHostBuilder CreateDefaultBuilder(string[] args)        {            var builder = new HostBuilder();
builder.UseContentRoot(Directory.GetCurrentDirectory()); builder.ConfigureHostConfiguration(config => { config.AddEnvironmentVariables(prefix: "DOTNET_"); if (args != null) { config.AddCommandLine(args); } });
builder.ConfigureAppConfiguration((hostingContext, config) => { var env = hostingContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
if (env.IsDevelopment() && !string.IsNullOrEmpty(env.ApplicationName)) { var appAssembly = Assembly.Load(new AssemblyName(env.ApplicationName)); if (appAssembly != null) { config.AddUserSecrets(appAssembly, optional: true); } }
利用 GetValue,GetSection,GetChildren读取appsettings.json 键值对 。我们打开appsettings.json文件:

将文件读入配置时,会创建一下唯一的分层健来保存配置值:

  • Logging:LogLevel:Default

  • Logging:LogLevel:System

  • Logging:LogLevel:Microsoft

  • Logging:LogLevel:Microsoft.Hosting.Lifetime

  • AllowedHosts

 var jsonValue = $"AllowedHosts:{_config["AllowedHosts"]}"+ "\r\n";            jsonValue += "Logging:LogLevel:Default:" + _config.GetValue("Logging:LogLevel:Default")+ "\r\n";
//GetSection 返回IConfigurationSection;如果未匹配到 返回null //jsonValue += "---" + _config.GetSection("Logging:LogLevel:System"); jsonValue += "Logging:LogLevel:System:" + _config.GetSection("Logging:LogLevel:System").Value+ "\r\n\n"; var logSection = _config.GetSection("Logging:LogLevel"); var configurationSections = logSection.GetChildren(); foreach (var sections in configurationSections) { jsonValue += $"{sections.Path}:{sections.Value}"; jsonValue += "\r\n"; } jsonValue += "\r\n";

输出:

配置指定json文件绑定至类

新建一个json文件-AAAppSettings.json
{  "AA": {    "RabbitMqHostUrl": "rabbitmq://localhost:5672",    "RabbitMqHostName": "localhost",    "RabbitMqUserName": "admin",    "RabbitMqPassword": "123"  }}
使用 ConfigureAppConfiguratio n方法 配 置 指定的json文件
public static IHostBuilder CreateHostBuilder(string[] args) =>            Host.CreateDefaultBuilder(args)            .ConfigureAppConfiguration((hostingContext, config) =>            {                config.SetBasePath(Directory.GetCurrentDirectory());                config.AddJsonFile("AAAppSettings.json", optional: true, reloadOnChange: true);            })

使用bind方法绑定到新建的类上如:

 public partial class AAConfig    {        public string RabbitMqHostUrl { get; set; }        public string RabbitMqHostName { get; set; }        public string RabbitMqUserName { get; set; }        public string RabbitMqPassword { get; set; }    }
var aaConfig = new AAConfig();_config.GetSection("AA").Bind(aaConfig);jsonValue += aaConfig.RabbitMqHostUrl + "\r\n";jsonValue += aaConfig.RabbitMqHostName + "\r\n";jsonValue += aaConfig.RabbitMqUserName + "\r\n";jsonValue += aaConfig.RabbitMqPassword + "\r\n";return jsonValue;

运行输出:

感谢各位的阅读!关于".Net Core3.0如何配置Configuration"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

配置 文件 方法 项目 内容 更多 源码 篇文章 错误 应用 输出 不错 实用 很大 一致 主机 代码 会创 信息 内存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海途爱网络技术有限公司 rat网络安全 如何进入阿里云服务器管理界面 五大国泰安数据库 计算机网络技术的教育 网络安全方面最大的风险是什么题 本科论文的查重数据库 服务器安全巡检管理制度 解释软件开发环境 12306的服务器 数据库连接对象所属的类的类名为 服务器怎么打开组策略管理编辑器 用什么数字代替数据库 数据库怎么在表里添加日期字段 网络技术服务属于什么服务 服务器电源多久更换一次 思科网络安全问题 人民网络安全宣传 计算机网络技术趋势范文 定制软件开发价格估算的公司 qq群数据对接数据库 上海途爱网络技术有限公司 电脑连接服务器查服务器ip 本科论文的查重数据库 网络安全教育公益宣传 网络技术推广合作协议书 江苏专业软件开发定制 用什么品牌电脑做服务器 基于嵌入式网络技术分析 开通阿里云服务器如何备案
0