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

ASP.NET?Core選項接口介紹

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

首先要了解 ASP.NET Core 中的配置,請點擊這里了解:http://m.fzitv.net/article/238451.htm

1,選項接口

ASP.NET Core 中的選項接口,一共有三個,分別是:

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

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

2,注入配置與IOptions

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

{
  "Title": "測試",
  "Name": "測試測試"
}

再創(chuà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());

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

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

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

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

這就是 IOptions<TOptions> 的使用。

IOptions<TOptions> 有以下特征:

不支持:

  • 在應用啟動后讀取配置數(shù)據(jù)。
  • 命名選項

可以:

  • 注冊為單一實例且可以注入到任何服務生存期。

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

3,IOptionsSnapshot

文檔解釋:通過使用 IOptionsSnapshot<TOptions>,針對請求生存期訪問和緩存選項時,每個請求都會計算一次選項。

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

其它不變,使用時:

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

由于 IOptionsSnapshot 每次請求都會進行更新,因此配置文件變更后,可以及時獲得更新。

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 都可以檢測到配置文件的更改,但是 IOptionsSnapshot 每次請求都是一個新的對象,而 IOptionsMonitor 是單例模式。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    LazyCaptcha自定義隨機驗證碼和字體的示例詳解

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

    .NET 6開發(fā)TodoList應用之實現(xiàn)接口請求驗證

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

最新評論

仪征市| 清原| 乐昌市| 夏津县| 雅江县| 凤山市| 涞水县| 杭锦旗| 奈曼旗| 涿州市| 柳林县| 河西区| 岚皋县| 榆林市| 璧山县| 安宁市| 岳阳市| 集贤县| 全南县| 沙洋县| 霍山县| 嘉善县| 巴楚县| 吉安县| 保定市| 津市市| 大同县| 文化| 金昌市| 黔江区| 翁牛特旗| 漠河县| 邢台县| 陆丰市| 邯郸市| 中山市| 广平县| 分宜县| 巴南区| 杂多县| 营山县|