日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

跟我一起学.NetCore之自定义配置源-热更新-对象绑定

發布時間:2023/12/4 asp.net 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 跟我一起学.NetCore之自定义配置源-热更新-对象绑定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

上一篇針對不同的配置源進行舉例演示,感受到不同配置源和不同數據格式使用統一操作的便捷(即沒有什么加一層解決不了的,這個不是我說的),這里接著說說自定義配置源、配置熱更新、配置綁定對象相關操作;

配置源回顧:

  • 命令行

  • 環境變量

  • 文件(Json、ini、Xml)

正文

自定義配置源

可能會有疑問,內置的配置源那么多,還不夠用嗎?只能這么說,需求各種各樣,說不一定有一些定制需求 ;就像如今微服務時代,針對于每個服務各自解析配置信息,顯得就不那么合適了,所以就會有一個配置中心的存在,而這里的配置中心就是一個配置源,如果要想像使用本地配置源一樣,就得自定義;來,先看步驟:

  • 實現IConfigrationProvider,通常會直接繼承ConfiguratioProvider抽象類,此類已經實現了IConfigrationProvider;

  • 實現IConfigurationSource,提供自定義的IConfigrationProvider;

  • 針對IConfigurationBuilder增加擴展方法,目的是不暴露自定義配置源代碼,同時使用也方便;

  • 走起,開擼,這里還是以控制臺的程序進行演示:

    • MyConfigurationProvider

    • MyConfigurationSource

    • ConfigurationBuilderExtend(非必須)

    • 像之前一樣使用

    • 運行看效果

    簡單吧,是不是秒會,那就對了,就可以繼續下一個知識點;通常對于配置來說,肯定有要去改配置的需求,就好比之前的Asp.Net的Web.Config配置文件,會根據需求進行配置修改,但是,要重啟項目才能使用,由此,熱更新就顯得更有用武之地了,即項目不需要重啟,配置文件修改后,項目后續能獲取到修改之后的數據;接下來以文件配置源的形式簡單舉例演示:

    創建一個控制臺項目,這里用Json文件做配置源演示:

    運行,默認熱更新是沒開啟的,所以改文件,多次獲取的值是都是舊值,

    修改配置文件內容---這里修改的是exe執行程序所在目錄的配置文件,如果用的是絕對目錄的話,修改項目目錄下的配置文件即可:

    那如何開啟呢?在指定配置源的時候打開對應的屬性即可:

    增加了兩個屬性,其實熱更新的屬性打開reloadOnChange就行了:

    • optional:?默認為false,意思就是沒有對應配置文件時報錯,如果設置為true,不會報錯,讀取到的值為空;

    • reloadOnChange:?默認為false,意思就是沒打開熱更新,設置為true,當文件變化時就會重新加載新值;

    運行結果,這次修改文件就可以讀取到最新的值了:

    熱更新其實就是個屬性的開關,使用就是簡單,接下來簡單舉例演示一下對象綁定吧,即將配置文件中的值綁定為一個對象,業務中使用的不太多,因為有些不愿意單獨再寫一個類來做綁定,但封裝服務的時候有的喜歡綁定為對象進行配置值的獲取;

    綁定邏輯:

    運行查看:

    數據成功綁定到了對象上,但默認情況下,私有屬性是綁定不成功的,但可以打開開關哦,如下:

    總結

    這里說明下,配置源的加載是有順序的,后添加的配置會覆蓋先添加的配置;這篇就先說這么多吧,相對簡單點,本來想把變更監聽內容在這一塊說說的,但想著可能會導致篇幅長,所以留到下次再說吧,專門針對配置數據變更監聽過程及監聽處理~~~

    一直想把Demo的代碼開源到github上,但想了想,前面幾個Demo就不提交了,動動手敲敲,絕對沒壞處(哈哈哈哈,別光看,表面會了,一寫就掉坑);后面的Demo相對復雜點,會開源到github上~~~~

    總結

    以上是生活随笔為你收集整理的跟我一起学.NetCore之自定义配置源-热更新-对象绑定的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。