最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET?Core中的Configuration配置一

 更新時間:2022年04月07日 10:20:47   作者:暗斷腸  
這篇文章介紹了ASP.NET?Core中的Configuration配置,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

相關文章

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

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

1.前言

ASP.NET Core在應用程序上引入Microsoft.Extensions.Configuration配置,可以支持多種方式配置,包括命令行配置、環(huán)境變量配置、文件配置、內存配置,自定義配置等等。下面我們就其中幾個配置來聊聊。

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視圖上添加如下代碼后發(fā)布一個Web版本掛載在IIS上。

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

根據控制臺監(jiān)聽站點連接,在瀏覽器上打開其中一個,比如打開https://localhost:5001/,會看到我們配置命令行信息:

3.文件配置

FileConfigurationProvider是從文件系統(tǒng)加載配置的基類。以下配置為應用程序提供專用于特定文件類型:INI配置、JSON配置、XML配置。

3.1 INI配置

IniConfigurationProvider在運行時會從INI文件鍵值對加載配置。若要激活INI文件配置,請在 ConfigurationBuilder的實例上調用AddIniFile擴展方法,而冒號可用作INI文件配置中的節(jié)點分隔符?,F在我們在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環(huán)境版本的,例如appsettings.{Environment}.json會根據IHostingEnvironment.EnvironmentName加載對應文件的環(huán)境版本(開發(fā)模式、生產模式等)。現在我們在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獲取指定配置子節(jié)。下面我們通過一個示例來了解下:

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

而通過啟動應用程序時會看到如下配置信息:

通過上述示例可以看到,IConfiguration.GetSection僅僅是獲取到json數據里面configSection0節(jié)點鍵和路徑,并沒有獲取到它的節(jié)點值。若要獲取section0:key0中的鍵值,請在調用GetSection時提供完整節(jié)點路徑,如獲取configSection1鍵值示例。
(2)GetChildren:獲取指定配置樹節(jié)點。下面我們通過一個示例來了解下:

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

而通過啟動應用程序時會看到如下配置信息:

GetChildren獲取了指定section2節(jié)點下所有節(jié)點。
(3)Exists:使用ConfigurationExtensions.Exists確定配置節(jié)點是否存在。下面我們通過一個示例來了解下:

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

而通過啟動應用程序時會了解到section2配置節(jié)點如果存在就會返回true,反之則false;同理section2:subsection2路徑配置節(jié)點亦一樣。

3.3 XML配置

XmlConfigurationProvider在運行時會從XML文件鍵值對加載配置。若要激活XML文件配置,請在ConfigurationBuilder的實例上調用AddXmlFile擴展方法?,F在我們在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>();
}

而通過啟動應用程序時會看到如下配置信息:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • ADO.NET基礎知識詳解

    ADO.NET基礎知識詳解

    本文詳細講解了ADO.NET基礎知識,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • ASP.NET?MVC項目部署方式介紹

    ASP.NET?MVC項目部署方式介紹

    這篇文章介紹了ASP.NET?MVC項目的部署方式,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03
  • ASP.NET中HttpContext對象下的屬性介紹

    ASP.NET中HttpContext對象下的屬性介紹

    這篇文章介紹了ASP.NET中HttpContext對象下的屬性,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 簡單的啟動窗體

    簡單的啟動窗體

    簡單的啟動窗體...
    2006-10-10
  • C#簡單獲取屏幕鼠標坐標點顏色方法介紹

    C#簡單獲取屏幕鼠標坐標點顏色方法介紹

    C#簡單獲取屏幕鼠標坐標點顏色方法介紹;有需求的朋友可以參考下
    2012-11-11
  • .Net行為型設計模式之命令模式(Command)

    .Net行為型設計模式之命令模式(Command)

    這篇文章介紹了.Net行為型設計模式之命令模式(Command),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • ASP.NET Core依賴關系注入

    ASP.NET Core依賴關系注入

    這篇文章介紹了ASP.NET Core中的依賴關系注入,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • asp.net平臺下C#實現Socket通信

    asp.net平臺下C#實現Socket通信

    這篇文章介紹了asp.net平臺下C#實現Socket通信的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • ASP.NET常用函數(推薦)

    ASP.NET常用函數(推薦)

    ASP.NET常用函數(推薦)...
    2006-09-09
  • ASP.NET?MVC模式中應用程序結構詳解

    ASP.NET?MVC模式中應用程序結構詳解

    本文詳細講解了ASP.NET?MVC模式中的應用程序結構,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03

最新評論

长海县| 滁州市| 扶余县| 于田县| 南昌市| 恩平市| 乐东| 陕西省| 峡江县| 丹巴县| 鸡泽县| 麻栗坡县| 左云县| 郎溪县| 胶南市| 名山县| 马关县| 改则县| 蒲江县| 公安县| 明光市| 顺义区| 唐山市| 碌曲县| 马尔康县| 茶陵县| 昆山市| 上思县| 遂昌县| 炉霍县| 沛县| 白水县| 高雄市| 古蔺县| 衡水市| 司法| 盐池县| 林芝县| 汶上县| 保定市| 肇源县|