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

ASP.NET?Core選項(xiàng)接口介紹

 更新時(shí)間:2022年02月23日 09:00:54   作者:癡者工良  
這篇文章介紹了ASP.NET?Core中的選項(xiàng)接口,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

首先要了解 ASP.NET Core 中的配置,請(qǐng)點(diǎn)擊這里了解:http://www.fzitv.net/article/238451.htm

1,選項(xiàng)接口

ASP.NET Core 中的選項(xiàng)接口,一共有三個(gè),分別是:

  • IOptions<TOptions>
  • IOptionsSnapshot<TOptions>
  • IOptionsMonitor<TOptions>

這三種方式都可以獲取到配置,區(qū)別在于生命周期和文件監(jiān)控等。

2,注入配置與IOptions

首先我們創(chuàng)建一個(gè) ASP.NET Core API 項(xiàng)目,添加一個(gè) test.json 文件,內(nèi)容如下:

{
  "Title": "測(cè)試",
  "Name": "測(cè)試測(cè)試"
}

再創(chuàng)建一個(gè)與之對(duì)應(yīng)的模型類:

    public class TestModel
    {
        public string Title { get; set; }
        public string Name { get; set; }
    }

然后在 Startup 的 ConfigureServices 方法中加上:

            services.Configure<TestModel>(new ConfigurationBuilder().AddJsonFile("test.json").Build());

這樣就可以自動(dòng)注入配置服務(wù)了。那么我們?nèi)绾谓邮者@個(gè)配置呢?
我們可以先使用 IOptions<T> 來接收。

添加一個(gè)控制器,名字隨意,其內(nèi)容如下:

    public class TestController : ControllerBase
    {
        private readonly TestModel _options;
        public TestController(IOptions<TestModel> options)
        {
            _options = options.Value;
        }
    }

這樣就可以接收接入的配置了。

這就是 IOptions<TOptions> 的使用。

IOptions<TOptions> 有以下特征:

不支持:

  • 在應(yīng)用啟動(dòng)后讀取配置數(shù)據(jù)。
  • 命名選項(xiàng)

可以:

  • 注冊(cè)為單一實(shí)例且可以注入到任何服務(wù)生存期。

也就是說,在應(yīng)用啟動(dòng)前就已經(jīng)讀取配置文件生成對(duì)象(單一實(shí)例)。當(dāng)然,后續(xù)如果修改了配置文件(.json),也不會(huì)影響這個(gè)對(duì)象的。

3,IOptionsSnapshot

文檔解釋:通過使用 IOptionsSnapshot<TOptions>,針對(duì)請(qǐng)求生存期訪問和緩存選項(xiàng)時(shí),每個(gè)請(qǐng)求都會(huì)計(jì)算一次選項(xiàng)。

IOptionsSnapshot 的生命作用域是 scoped ,在一個(gè)請(qǐng)求周期內(nèi)有效。

其它不變,使用時(shí):

        private readonly TestModel _options;
        public TestController(IOptionsSnapshot<TestModel> options)
        {
            _options = options.Value;
        }

由于 IOptionsSnapshot 每次請(qǐng)求都會(huì)進(jìn)行更新,因此配置文件變更后,可以及時(shí)獲得更新。

IOptionsMonitor 則略有不同:

    public class TestController : ControllerBase
    {
        private readonly IOptionsMonitor<TestModel> _options;
        public TestController(IOptionsMonitor<TestModel> options)
        {
            _options = options;
        }
        [HttpGet("T")]
        public ContentResult T()
        {

            return new ContentResult()
            {
                Content = _options.CurrentValue.Title
            };
        }
    }

IOptionsSnapshot 和 IOptionsMonitor 都可以檢測(cè)到配置文件的更改,但是 IOptionsSnapshot 每次請(qǐng)求都是一個(gè)新的對(duì)象,而 IOptionsMonitor 是單例模式。

到此這篇關(guān)于ASP.NET Core選項(xiàng)接口的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解VS2017 Linux 上.NET Core調(diào)試

    詳解VS2017 Linux 上.NET Core調(diào)試

    這篇文章主要介紹了詳解VS2017 Linux 上.NET Core調(diào)試,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • [譯]ASP.NET Core 2.0 路由引擎詳解

    [譯]ASP.NET Core 2.0 路由引擎詳解

    本篇文章主要介紹了[譯]ASP.NET Core 2.0 路由引擎,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • .Net MVC將Controller數(shù)據(jù)傳遞到View

    .Net MVC將Controller數(shù)據(jù)傳遞到View

    這篇文章介紹了.Net MVC將Controller數(shù)據(jù)傳遞到View的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • .NetCore之接口緩存的實(shí)現(xiàn)示例

    .NetCore之接口緩存的實(shí)現(xiàn)示例

    這篇文章主要介紹了.NetCore之接口緩存的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • .NET實(shí)現(xiàn)文件跨服務(wù)器上傳下載的方法

    .NET實(shí)現(xiàn)文件跨服務(wù)器上傳下載的方法

    這篇文章主要給大家介紹了.NET文件如何實(shí)現(xiàn)跨服務(wù)器上傳下載的方法,文中通過圖片介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們可以跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • ASP.NET數(shù)據(jù)綁定之GridView控件

    ASP.NET數(shù)據(jù)綁定之GridView控件

    這篇文章主要為大家介紹了ASP.NET數(shù)據(jù)綁定中的GridView控件,GridView控件的功能是在web頁面中顯示數(shù)據(jù)源中的數(shù)據(jù),對(duì)GridView控件感興趣的小伙伴們可以參考一下
    2016-01-01
  • asp.net簡化接收參數(shù)值的函數(shù)

    asp.net簡化接收參數(shù)值的函數(shù)

    獲取querystring 參數(shù)名
    2008-05-05
  • asp.net下無法循環(huán)綁定投票的標(biāo)題和選項(xiàng)的解決方法

    asp.net下無法循環(huán)綁定投票的標(biāo)題和選項(xiàng)的解決方法

    asp.net下無法循環(huán)綁定投票的標(biāo)題和選項(xiàng)與無法循環(huán)獲得用戶的選擇的解決方法。
    2010-12-12
  • LazyCaptcha自定義隨機(jī)驗(yàn)證碼和字體的示例詳解

    LazyCaptcha自定義隨機(jī)驗(yàn)證碼和字體的示例詳解

    LazyCaptcha是仿EasyCaptcha和SimpleCaptcha,基于.Net?Standard?2.1的圖形驗(yàn)證碼模塊,這篇文章主要介紹了LazyCaptcha自定義隨機(jī)驗(yàn)證碼和字體?,需要的朋友可以參考下
    2022-03-03
  • .NET 6開發(fā)TodoList應(yīng)用之實(shí)現(xiàn)接口請(qǐng)求驗(yàn)證

    .NET 6開發(fā)TodoList應(yīng)用之實(shí)現(xiàn)接口請(qǐng)求驗(yàn)證

    在響應(yīng)請(qǐng)求處理的過程中,我們經(jīng)常需要對(duì)請(qǐng)求參數(shù)的合法性進(jìn)行校驗(yàn),如果參數(shù)不合法,將不繼續(xù)進(jìn)行業(yè)務(wù)邏輯的處理。本文將介紹如何使用FluentValidation和MediatR實(shí)現(xiàn)接口請(qǐng)求驗(yàn)證,需要的可以參考一下
    2021-12-12

最新評(píng)論

苍南县| 卢龙县| 宣武区| 靖宇县| 吉水县| 绥德县| 寿宁县| 雷州市| 象山县| 滦平县| 海丰县| 遵化市| 惠安县| 岳阳县| 饶河县| 清流县| 蓝山县| 玉山县| 田阳县| 罗江县| 铜山县| 吉隆县| 贡觉县| 罗江县| 迭部县| 宁晋县| 建瓯市| 德令哈市| 林周县| 泽普县| 囊谦县| 高陵县| 慈溪市| 津南区| 永兴县| 金华市| 婺源县| 运城市| 绥阳县| 胶州市| 固原市|