iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ASP.NET Core中的Configuration怎么配置
  • 824
分享到

ASP.NET Core中的Configuration怎么配置

2023-06-29 21:06:16 824人浏览 八月长安
摘要

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

这篇文章主要讲解了“asp.net Core中的Configuration怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.net Core中的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上。

ASP.NET Core中的Configuration怎么配置

ASP.NET Core中的Configuration怎么配置

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

ASP.NET Core中的Configuration怎么配置

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

ASP.NET Core中的Configuration怎么配置

3.文件配置

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

3.1 INI配置

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

[section0]key0=valuekey1=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:如果文件更改,是否应重新加载配置。而通过启动应用程序时会看到如下配置信息:

ASP.NET Core中的Configuration怎么配置

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

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

ASP.NET Core中的Configuration怎么配置

从上述信息可以看到,在我们指定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");}

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

ASP.NET Core中的Configuration怎么配置

ASP.NET Core中的Configuration怎么配置

通过上述示例可以看到,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();}

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

ASP.NET Core中的Configuration怎么配置

ASP.NET Core中的Configuration怎么配置

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

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

ASP.NET Core中的Configuration怎么配置

感谢各位的阅读,以上就是“ASP.NET Core中的Configuration怎么配置”的内容了,经过本文的学习后,相信大家对ASP.NET Core中的Configuration怎么配置这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: ASP.NET Core中的Configuration怎么配置

本文链接: https://www.lsjlt.com/news/326492.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • ASP.NET Core中的Configuration怎么配置
    这篇文章主要讲解了“ASP.NET Core中的Configuration怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET Core中的Configu...
    99+
    2023-06-29
  • ASP.NET Core中的Configuration配置二
    目录1.内存配置1.1GetValue2.绑定到实体类3.绑定至对象图4.将数组绑定至类5.在Razor Pages页或MVC视图中访问配置相关文章 ASP.NET Core2.2 ...
    99+
    2024-04-02
  • ASP.NET Core中的Configuration配置一
    目录1.前言2.命令行配置3.文件配置3.1 INI配置3.2 JSON配置3.2.1GetSection、GetChildren和Exists3.3 XML配置相关文章 ASP.N...
    99+
    2024-04-02
  • ASP.NET Core中的Configuration如何配置
    这篇文章主要讲解了“ASP.NET Core中的Configuration如何配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET Core中的Configu...
    99+
    2023-06-29
  • ASP.NET Core配置设置之Configuration包
    ASP.NET Core 中提供了一个Configuration 包,用以应用配置基于配置提供程序建立的键值对。这里以json文件配置的方式,简单的介绍一下它的用法。 首先...
    99+
    2024-04-02
  • ASP.NET Core中的环境怎么配置
    这篇文章主要介绍了ASP.NET Core中的环境怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ASP.NET Core中的环境怎么配置文章都会有所收获,下面我们一起来看看吧。1.环...
    99+
    2023-06-29
  • ASP.NET Core中的配置有哪些
    这篇文章主要讲解了“ASP.NET Core中的配置有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET Core中的配置有哪些”吧!背景AS...
    99+
    2024-04-02
  • ASP.NET Core中的Options选项模式怎么配置
    这篇文章主要介绍“ASP.NET Core中的Options选项模式怎么配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET Core中的Options选项模式怎么配...
    99+
    2023-06-29
  • .Net Core配置Configuration具体实现
    目录核心类 构建ConfigurationBuilder IConfigurationSource ConfigurationProvider ConfigurationRoot 查...
    99+
    2024-04-02
  • 如何在ASP.NET Core 的任意类中注入Configuration
    目录遇到的问题解决方案总结遇到的问题 我已经通读了 MSDN 上关于 Configuration 的相关内容,文档说可实现在 application 的任意位置访问 Configur...
    99+
    2024-04-02
  • ASP.NET Core中的SSL证书如何配置
    在ASP.NET Core中配置SSL证书可以通过以下步骤进行: 生成SSL证书:可以使用工具如OpenSSL或者通过一些在线服...
    99+
    2024-05-09
    ASP.NET SSL证书
  • ASP.Net Core MVC中获取配置信息
    这篇文章主要为大家展示了“ASP.Net Core MVC中获取配置信息”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ASP.Net Core MVC中获...
    99+
    2023-06-29
  • ASP.NET Core通用主机的系统怎么配置
    本篇内容介绍了“ASP.NET Core通用主机的系统怎么配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ASP.NET Cor...
    99+
    2023-07-02
  • ASP.NET Core怎么配置和管理Web主机
    本篇内容主要讲解“ASP.NET Core怎么配置和管理Web主机”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET Core怎么配置和管理Web主机”吧!1.前言...
    99+
    2023-06-29
  • ASP.net Core微信平台开发怎么配置Token
    今天小编给大家分享一下ASP.net Core微信平台开发怎么配置Token的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-06-30
  • ASP.NET Core通用主机的系统配置
    ASP.NET Core 2.0 中的 WebHost(实现 IWebHost 的基类)是用于为进程提供 HTTP 服务器功能的基础结构项目,例如,如果...
    99+
    2024-04-02
  • ASP.NET Core开发环境安装配置
    ASP.NET Core环境设置 1.如何设置用于.NetCore应用程序开发的开发机器2.安装SDK和IDE3.验证安装 开发和.NET Core应用程序所需的工具和软件 1.设备...
    99+
    2024-04-02
  • 如何使用ASP.NET Core 配置文件
    目录前言Json配置文件的使用RedisHelper类XML配置文件的使用前言 在ASP.NET ,我们使用XML格式的.Config文件来作为配置文件,而在ASP.NET Core...
    99+
    2024-04-02
  • ASP.NET Core配置系统实例分析
    本文小编为大家详细介绍“ASP.NET Core配置系统实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core配置系统实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-05
  • ASP.NET Core配置和管理Web主机
    目录1.前言2.设置主机2.1执行下列任务2.2重写和增强定义的配置3.主机配置值3.1应用程序键(名称)3.2捕获启动错误3.3内容根3.4详细错误3.5环境3.6HTTPS端口3...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作