.NetCore3.0如何配置Configuration

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

主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、成都响应式网站建设公司、程序开发、微网站、微信小程序等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都做网站、成都网站制作、成都外贸网站建设、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体,具备承接不同规模与类型的建设项目的能力。

 准备

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

.Net Core3.0如何配置Configuration

错误提示: 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中制定的版本是否一致:然后修改即可

.Net Core3.0如何配置Configuration

开始

新建个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文件:

.Net Core3.0如何配置Configuration

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

  • 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";

输出:

.Net Core3.0如何配置Configuration 

配置指定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

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


网站题目:.NetCore3.0如何配置Configuration
标题来源:http://pwwzsj.com/article/jjsssc.html