我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ASP.NET Core中的Configuration配置一

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ASP.NET Core中的Configuration配置一

相关文章

ASP.NET Core2.2 中的Configuration配置一

ASP.NET Core2.2 中的Configuration配置二

1.前言

ASP.NET Core在应用程序上引入Microsoft.Extensions.Configuration配置,可以支持多种方式配置,包括命令行配置、环境变量配置、文件配置、内存配置,自定义配置等等。下面我们就其中几个配置来聊聊。

2.命令行配置

CommandLineConfigurationProvider在应用程序运行时会从(例如DOS)命令行参数键值加载配置。要激活命令行配置,请在ConfigurationBuilder的实例上调用AddCommandLine扩展方法。使用CreateDefaultBuilder初始化新的WebHostBuilder时会自动调用AddCommandLine。

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
    .ConfigureAppConfiguration((hostingContext, config) =>
    {
        // Call other providers here and call AddCommandLine last.
        config.AddCommandLine(args);
    }).UseStartup<Startup>();
}

在Program加入上述代码并在/Home/Index视图上添加如下代码后发布一个Web版本挂载在IIS上。

在控制台上输入DOS命令行dotnet D:\Release\Core\TestWebApp.dll CommandLineKey1=value1配置键:CommandLineKey1,值:value1的信息,会看到如下界面信息:

根据控制台监听站点连接,在浏览器上打开其中一个,比如打开https://localhost:5001/,会看到我们配置命令行信息:

3.文件配置

FileConfigurationProvider是从文件系统加载配置的基类。以下配置为应用程序提供专用于特定文件类型:INI配置、JSON配置、XML配置。

3.1 INI配置

IniConfigurationProvider在运行时会从INI文件键值对加载配置。若要激活INI文件配置,请在 ConfigurationBuilder的实例上调用AddIniFile扩展方法,而冒号可用作INI文件配置中的节点分隔符。现在我们在CoreWeb根目录下添加一个INI配置文件(命名为config):

[section0]
key0=value
key1=value
[section1]
subsection:key=value
[section2:subsection0]
key=value
[section2:subsection1]
key=value

而应用程序在构建主机时会调用ConfigureAppConfiguration以指定应用程序配置(这里我们指定config.ini文件):

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.SetBasePath(Directory.GetCurrentDirectory());
                config.AddIniFile(
                    "config.ini", optional: true, reloadOnChange: true);
            })
            .UseStartup<Startup>();
}

从上述代码可以看到IConfigurationBuilder设置了文件访问初始路径。Optional:文件是否可选;reloadOnChange:如果文件更改,是否应重新加载配置。而通过启动应用程序时会看到如下配置信息:

3.2 JSON配置

JsonConfigurationProvider在运行时期间会从JSON文件键值对加载配置。若要激活JSON文件配置,请在ConfigurationBuilder的实例上调用AddJsonFile扩展方法。使用 CreateDefaultBuilder初始化新的WebHostBuilder时,会自动调用AddJsonFile两次,调用该方法(AddJsonFile)来从以下文件加载配置,首先会读取appsettings.json该文件。而应用程序启动时是会默认调用对应的appsettings.{Environment}.json环境版本的,例如appsettings.{Environment}.json会根据IHostingEnvironment.EnvironmentName加载对应文件的环境版本(开发模式、生产模式等)。现在我们在CoreWeb根目录下添加一个JSON配置文件(命名为config):

{
  "section0": {
    "key0": "key0value",
    "key1": "key1value"
  },
  "section1": {
    "key0": "key0value",
    "key1": "key1value"
  },
  "section2": {
    "subsection0": {
      "key0": "sub0key0value",
      "key1": "sub0key1value"
    },
    "subsection1": {
      "key0": "sub1key0value",
      "key1": "sub1key1value"
    }
  }
}

而应用程序在构建主机时会调用ConfigureAppConfiguration以指定除appsettings.json和appsettings.{Environment}.json以外文件的应用程序配置(这里我们指定config.json文件):

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.SetBasePath(Directory.GetCurrentDirectory());
                config.AddJsonFile(
                    "config.json", optional: true, reloadOnChange: true);
            })
            .UseStartup<Startup>();
}

而通过启动应用程序时会看到如下配置信息:

从上述信息可以看到,在我们指定config.json文件后,IConfigurationBuilder会额外多调用一次AddJsonFile,加上前两次AddJsonFile,一共是三次。

3.2.1GetSection、GetChildren和Exists

(1)GetSection:IConfiguration.GetSection获取指定配置子节。下面我们通过一个示例来了解下:

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
    var configSection0 = Configuration.GetSection("section0");
    var configSection1 = Configuration.GetSection("section0:key0");
}

而通过启动应用程序时会看到如下配置信息:

通过上述示例可以看到,IConfiguration.GetSection仅仅是获取到json数据里面configSection0节点键和路径,并没有获取到它的节点值。若要获取section0:key0中的键值,请在调用GetSection时提供完整节点路径,如获取configSection1键值示例。
(2)GetChildren:获取指定配置树节点。下面我们通过一个示例来了解下:

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
    var configSection = Configuration.GetSection("section2");
    var children = configSection.GetChildren();
}

而通过启动应用程序时会看到如下配置信息:

GetChildren获取了指定section2节点下所有节点。
(3)Exists:使用ConfigurationExtensions.Exists确定配置节点是否存在。下面我们通过一个示例来了解下:

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
    var sectionExists0 = Configuration.GetSection("section2").Exists();//true
    var sectionExists1 = Configuration.GetSection("section2:subsection2").Exists();//false
}

而通过启动应用程序时会了解到section2配置节点如果存在就会返回true,反之则false;同理section2:subsection2路径配置节点亦一样。

3.3 XML配置

XmlConfigurationProvider在运行时会从XML文件键值对加载配置。若要激活XML文件配置,请在ConfigurationBuilder的实例上调用AddXmlFile扩展方法。现在我们在CoreWeb根目录下添加一个XML配置文件(命名为config):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <section0>
    <key0>value</key0>
    <key1>value</key1>
  </section0>
  <section1>
    <key0>value</key0>
    <key1>value</key1>
  </section1>
</configuration>

而应用程序在构建主机时调用ConfigureAppConfiguration以指定应用程序的配置(这里我们指定config.xml文件):

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.SetBasePath(Directory.GetCurrentDirectory());
                config.AddXmlFile(
                    "config.xml", optional: true, reloadOnChange: true);
            })
            .UseStartup<Startup>();
}

而通过启动应用程序时会看到如下配置信息:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ASP.NET Core中的Configuration配置一

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ASP.NET Core中的Configuration如何配置

这篇文章主要讲解了“ASP.NET Core中的Configuration如何配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET Core中的Configuration如何配置
2023-06-29

ASP.NET Core中的Configuration怎么配置

这篇文章主要讲解了“ASP.NET Core中的Configuration怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET Core中的Configuration怎么配置
2023-06-29

asp.net core configuration配置读取的实现

ASP.NETCore配置读取实现:强大的配置系统,可从配置文件、环境变量等来源加载设置。appsettings.json为默认配置文件,可针对不同环境使用多个配置文件。IConfigurationBuilder构建IConfiguration实例,添加配置来源(IConfigurationSource)。IConfiguration包含所有配置数据,支持索引器和类型化配置。内置配置提供程序加载不同类型数据(如配置文件、环境变量、命令行参数)。可创建自定义配置提供程序集成其他系统。优先级规则决定使用哪个配
asp.net core configuration配置读取的实现
2024-04-02

ASP.NET Core中的环境怎么配置

这篇文章主要介绍了ASP.NET Core中的环境怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ASP.NET Core中的环境怎么配置文章都会有所收获,下面我们一起来看看吧。1.环境变量配置ASP.N
2023-06-29

ASP.NET Core中的SSL证书如何配置

在ASP.NET Core中配置SSL证书可以通过以下步骤进行:生成SSL证书:可以使用工具如OpenSSL或者通过一些在线服务来生成SSL证书。确保将生成的SSL证书保存为.pfx或者.crt格式。将SSL证书添加到项目中:将生成的SSL
ASP.NET Core中的SSL证书如何配置
2024-05-09

ASP.Net Core MVC中获取配置信息

这篇文章主要为大家展示了“ASP.Net Core MVC中获取配置信息”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ASP.Net Core MVC中获取配置信息”这篇文章吧。在之前新建的项目
2023-06-29

理解ASP.NET Core 配置系统

ASP.NETCore配置系统允许存储和管理应用程序配置值,这些值可以在运行时检索。它是一个分层系统,可以从多种来源(配置文件、环境变量、命令行参数)获取配置值。通过IConfiguration接口可以访问配置值。配置系统采用分层模型,其中命令行参数最优先,其次是环境变量和应用程序配置文件。配置绑定允许将配置值绑定到类的属性,简化了配置数据的访问。ASP.NETCore配置系统还提供高级特性,如JSON/XML配置文件支持、配置刷新、秘密管理和配置验证,以满足各种应用程序需求。
理解ASP.NET Core 配置系统
2024-04-02

Asp.net core Web Api配置swagger中文的实现

摘要:本文详细阐述了在ASP.NETCoreWebAPI中配置Swagger并将文档翻译为中文的步骤。通过安装Swagger包、添加Swagger中间件和本地化配置,您可以创建交互式的中文API文档。本文还提供了自定义翻译、多语言支持和SwaggerUI主题自定义的扩展技巧。通过配置Swagger和本地化,开发人员可以提高API的可访问性和易用性。
Asp.net core Web Api配置swagger中文的实现
2024-04-02

ASP.NET Core中的Options选项模式怎么配置

这篇文章主要介绍“ASP.NET Core中的Options选项模式怎么配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET Core中的Options选项模式怎么配置”文章能帮助大家解
2023-06-29

ASP.NET Core配置系统实例分析

本文小编为大家详细介绍“ASP.NET Core配置系统实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core配置系统实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。ASP.NET
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录