中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET Core全新的配置管理方法有哪些

發布時間:2021-12-24 09:10:24 來源:億速云 閱讀:152 作者:iii 欄目:大數據

這篇文章主要介紹“.NET Core全新的配置管理方法有哪些”,在日常操作中,相信很多人在.NET Core全新的配置管理方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”.NET Core全新的配置管理方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、讀取配置信息

由于很多人都不曾接觸過這個采用全新設計的配置系統,為了讓大家對此有一個感官的認識,我們先從編程的角度對它作一個初體驗。針對配置的API涉及三個對象,它們分別是Configuration、ConfigurationBuilder和ConfigurationProvider,配置模型中具有相應的接口來表示它們。這三個對象之間的關系很清晰,Configuration對象承載著在編程過程中使用的配置信息,ConfigurationProvider則是配置信息原始數據源的提供者,兩者之間溝通由ConfigurationBuilder來完成,它利用ConfigurationProvider提取源數據將其轉換為Configuration對象。 

二、配置模型詳解

在《讀取配置信息》一文中我們以實例演示的方式介紹了幾種讀取配置的幾種方式,其中涉及到三個重要的對象,它們分別是承載結構化配置信息的Configuration,提供原始配置源數據的ConfigurationProvider,以及作為“中間人”的ConfigurationBuilder。

三、將配置綁定為各種類型的對象

出于編程上的便利,我們通常不會直接利用ConfigurationBuilder創建的Configuration對象讀取某個單一配置項的值,而是傾向于將一組相關的配置綁定為一個對象,我們將后者稱為Options對象。配置在邏輯上體現為一個具有層次化的配置樹,對于一個Options對象來說,如果我們將其數據成員視為其子節點,那么Options對象同樣具有一個層次化屬性結構,所以Options對象和配置在數據結構層面并沒有本質的差異。如果Options類型的數據成員定義與配置的結構具有一一匹配關系,那么將后者綁定為一個對應類型的Options對象是一件很容易的事情,我們本節重點介紹的ConfigurationBinder就是利用這樣的原理實現了結構化配置向數據對象的自動綁定。 

四、Options模型背后的故事

整個Options模型以兩個注冊到ServiceCollection的服務為核心,這兩個服務對應的服務接口分別是IOptions <TOptions>和IConfigureOptions<TOptions>,前者直接提供最終綁定了配置數據的Options對象,后者則在Options對象返回之前對它實施相應的初始化工作。這個兩個服務分別通過擴展方法AddOptions和Configure方法注冊到指定的ServiceCollection之中,服務的真實類型分別是OptionsManager<TOptions>和ConfigureFromConfigurationOptions<TOptions>,后者派生于ConfigureOptions<TOptions>。

五、多樣性的配置來源:內存變量、環境變量和命令行開關

較之傳統通過App.config和Web.config這兩個XML文件承載的配置系統,ASP.NET Core采用的這個全新的配置模型的最大一個優勢就是針對多種不同配置源的支持。我們可以將內存變量、命令行參數、環境變量和物理文件作為原始配置數據的來源,如果采用物理文件作為配置源,我們可以選擇不同的格式,比如XML、JSON和INI等。本章涉及三種配置來源,即內存變量、環境變量和命令行開關。

六、多樣性的配置來源:JSON文件、XML文件 和INI文件

我們在本篇文章中會介紹三種針對物理文件的ConfiguationProvider,它們分別是針對JSON文件的JsonConfiguationProvider,針對XML文件的XmlConfiguationProvider以及針對INI文件的IniConfiguationProvider。對于這三種文件類型(JSON、XML和INI)來說,JSON能夠采用簡單直觀的格式表示具有不同結構的數據,所以它是作為配置最好的選擇。

七、多樣性的配置來源:自定義ConfiguationProvider支持其他配置源

我們對配置模型中默認提供的各種ConfigurationProvider進行了深入詳盡的介紹,如果它們依然不能滿足項目中的配置需求,我們可以還可以通過自定義ConfigurationProvider來支持我們希望的配置來源。就配置數據的持久化方式來說,將配置存儲在數據庫中應該是一種非常常見的方式,接下來我們就是創建一個針對數據庫的ConfigurationProvider,它采用最新的Entity Framework 7來完成數據庫的存取操作。

八、配置的同步[實例篇]

ConfigurationBuilder在生成以Configuration對象的時候會利用注冊其中的ConfigurationProvider加載原始的配置數據,那么一旦配置源中的數據發生變化,應用程序中的使用的配置信息如何與之同步呢?如果需要在應用程序中實現對配置信息的實施同步,就需要對原始配置數據的進行監控,并在數據改變的時候重新加載配置數據。除此之外,重新加載的配置需要應用到程序中,我們必然需要一種通知機制。為了讓讀者朋友們對配置同步機制在具體項目中的應用有個感官認識,我們先通過一個簡單的實例來演示如何實現配置數據的實時同步。我們采用一個INI文件作為配置源,通過實施監控這個文件第一時間感知到文件內容的變換。一旦原始配置文件的內容發生改變,應用程序將重新加載配置,并通過注冊的回掉操作應用新的配置。

九、配置的同步[設計篇]

本節所謂的“配置同步”主要體現在兩個方面:其一,如何監控配置源并在其變化的時候自動加載其數據,其目的是讓應用中通過Configuration對象承載的配置與配置源的數據同步;其二、當Configuration對象承載的配置放生變換的時候如何向應用程序發送通知,最終讓應用程序使用最新

到此,關于“.NET Core全新的配置管理方法有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛阳市| 大渡口区| 黄浦区| 顺义区| 北安市| 双辽市| 宁晋县| 榕江县| 阳春市| 潞城市| 奇台县| 襄城县| 临洮县| 乐亭县| 龙门县| 怀来县| 大荔县| 大庆市| 上犹县| 自治县| 肥东县| 南城县| 漳平市| 桃源县| 酒泉市| 金昌市| 莫力| 彭水| 曲水县| 油尖旺区| 金平| 庄浪县| 商丘市| 崇仁县| 孝义市| 青神县| 黄浦区| 峨眉山市| 平度市| 北宁市| 兰州市|