<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] <br/><br/><br/> # <b style="color:#4F4F4F;">簡介說明</b> ``` 版本:Microsoft.Extensions.Configuration 作用:dotnet core 配置框架 ``` <br/> # <b style="color:#4F4F4F;">Microsoft.Extensions.Configuration.IConfigurationBuilder</b> <br/> # <span style="color:#619BE4">SetBasePath()</span> ***** 設置基本路徑地址 <br/> # <span style="color:#619BE4">Add()</span> ***** 從自定義源加載數據 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` using WebApplication.Extensions; using System; using System.Globalization; using System.Timers; using Microsoft.Extensions.Configuration; namespace WebApplication.Extensions { public class MyConfigurationProvider : ConfigurationProvider { public MyConfigurationProvider() : base() { var timer = new Timer(); timer.Elapsed += Timer_Elapsed; timer.Interval = 3000; timer.Start(); } public void Timer_Elapsed(object sender, ElapsedEventArgs e) { Load(); } public override void Load() { Data["time"] = DateTime.Now.ToString(CultureInfo.InvariantCulture); OnReload(); } } public class MyConfigurationSource : IConfigurationSource { public IConfigurationProvider Build(IConfigurationBuilder builder) { return new MyConfigurationProvider(); } } } namespace Microsoft.Extensions.Configuration { public static class MyConfigurationBuilderExtensions { public static IConfigurationBuilder AddMyConfiguration(this IConfigurationBuilder builder) { builder.Add(new MyConfigurationSource()); return builder; } } } ``` <br/> # <span style="color:#619BE4">AddInMemoryCollection()</span> ***** 從內存中加載配置對象 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` conf.AddInMemoryCollection(new Dictionary<string, string>() { {"name", "a"}, {"age", "1"}, {"section1:sex", "nv"} }); ``` <br/> # <span style="color:#619BE4">AddCommandLine()</span> ***** 從命令行中加載配置對象 <br/> ### 參數說明 <b style="color:#808080;">arg:</b> * 類型:字符串數組 * 默認值:無 * 描述:命令行內容數組 * 可選值:[ ] <b style="color:#808080;">mapper:</b> * 類型:Dictionary * 默認值:無 * 描述:映射單橫向做別名 * 可選值:[ ] <br/> # <span style="color:#619BE4">AddEnvironmentVariables()</span> ***** 從環境變量中加載配置對象,不再用:分割而是__進行分割 <br/> ### 參數說明 <b style="color:#808080;">prefix:</b> * 類型:字符串 * 默認值:無 * 描述:指定環境變量前綴 * 可選值:[ ] <br/> # <span style="color:#619BE4">AddJsonFile()</span> ***** 從JSON文件中讀取 <br/> ### 參數說明 <b style="color:#808080;">path:</b> * 類型:字符串 * 默認值:無 * 描述:文件路徑 * 可選值:[ ] <b style="color:#808080;">optional:</b> * 類型:布爾 * 默認值:無 * 描述:文件不存在時是否報錯 * 可選值:[ ] <b style="color:#808080;">reloadOnChange:</b> * 類型:布爾 * 默認值:無 * 描述:文件變更以后是否重新讀取 * 可選值:[ ] <br/> # <span style="color:#619BE4">AddIniFile()</span> ***** 從INI文件中讀取 <br/> # <span style="color:#619BE4">Build()</span> ***** 創建并返回IConfigurationRoot對象 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` IConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(new Dictionary<string, string> { {"key1", "value1"}, {"key2", "value2"}, {"section1:key3", "value3"} }); // 單橫杠要定義別名,否則拋出異常 var mapper = new Dictionary<string, string> { {"-k1", "CommandLineKey1"} }; builder.AddCommandLine(args, mapper); // 雙下劃線分割節點 builder.AddEnvironmentVariables("PREFIX_"); // optional參數定義文件不存在是否報錯,reloadOnChange文件變更是否重新讀取文件 builder.AddJsonFile("", optional: false, reloadOnChange: true); builder.AddIniFile(""); IConfiguration config = builder.Build(); var reloadToken = config.GetReloadToken(); reloadToken.RegisterChangeCallback(state => { // 執行一次不再執行 Console.WriteLine("OnChange"); }, config); ChangeToken.OnChange(() => config.GetReloadToken(), () => { // 變更就會執行 Console.WriteLine("OnChange"); }); // BindNonPublicProperties規定私有自動也進行賦值 config.Bind(new { }, options => options.BindNonPublicProperties = true); Console.WriteLine(config["key1"]); var section = config.GetSection("section1"); Console.WriteLine(section["key3"]); ``` <br/> # <b style="color:#4F4F4F;">Microsoft.Extensions.Configuration.IConfigurationRoot</b> <br/> # <span style="color:#619BE4">Bind()</span> ***** 綁定到強類型對象上 <br/> # <span style="color:#619BE4">GetSection()</span> ***** 獲取Section對象 <br/> # <span style="color:#619BE4">GetReloadToken()</span> ***** 獲取IChangeToken對象 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` var builder = new ConfigurationBuilder(); builder.Add(new MyConfigurationSource()); var configRoot = builder.Build(); ChangeToken.OnChange(() => configRoot.GetReloadToken(), state =>{Console.WriteLine(state["lastTime"]);},configRoot); Console.ReadKey(); ``` <br/> # <span style="color:#619BE4">this.\[item\]()</span> ***** 根據索引查找配置項值 <br/> # <b style="color:#4F4F4F;">Microsoft.Extensions.Configuration.IConfigurationSection</b> <br/> # <span style="color:#619BE4">Bind()</span> ***** 綁定到對象上 <br/> # <span style="color:#619BE4">this.\[item\]()</span> ***** 根據索引查找配置項值 <br/> # <b style="color:#4F4F4F;">Microsoft.Extensions.Configuration.IConfigurationSource</b> <br/> # <span style="color:#619BE4">Build()</span> ***** 返回自定義IConfigurationProvider <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` public class MyConfigurationSource : IConfigurationSource { public IConfigurationProvider Build(IConfigurationBuilder builder) { return new MyConfigurationProvider(); } } ``` <br/> # <b style="color:#4F4F4F;">Microsoft.Extensions.Configuration.IConfigurationProvider</b> <br/> # <span style="color:#619BE4">Data</span> ***** 數據字典 <br/> # <span style="color:#619BE4">Load()</span> ***** 加載數據 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` public override void Load() { Data["time"] = DateTime.Now.ToString(CultureInfo.InvariantCulture); } ``` <span style="color:red;">2. 命名空間中拓展ConfigurationSource</span> ``` namespace Microsoft.Extensions.Configuration { public static class MyConfigurationBuilderExtensions { public static IConfigurationBuilder AddMyConfiguration(this IConfigurationBuilder builder) { builder.Add(new MyConfigurationSource()); return builder; } } } ``` <span style="color:red;">3. 自定義ConfigurationProvider</span> ``` internal class MyConfigurationSource : IConfigurationSource { public IConfigurationProvider Build(IConfigurationBuilder builder) { return new MyConfigurationProvider(); } } internal class MyConfigurationProvider : ConfigurationProvider { public MyConfigurationProvider() { var timer = new Timer(); timer.Elapsed += Timer_Elapsed; timer.Interval = 3000; timer.Start(); } private void Timer_Elapsed(object sender, ElapsedEventArgs e) { Load(true); } public override void Load() { Load(false); } private void Load(bool reload) { Data["lastTime"] = DateTime.Now.ToString(CultureInfo.InvariantCulture); if (reload) { OnReload(); } } } ``` <br/> # <span style="color:#619BE4">OnLoad()</span> ***** 觸發重新加載更改令牌并創建一個新令牌 <br/>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看