.Net core 2.x基礎學習筆記(1) —— Starup

来源:https://www.cnblogs.com/banluduxing/archive/2019/04/17/10704198.html
-Advertisement-
Play Games

這個系列的初衷是便於自己總結與回顧,把筆記本上面的東西轉移到這裡,態度不由得謹慎許多,下麵是我參考的資源: ASP.NET Core 中文文檔目錄 記在這裡的東西我會不斷的完善豐滿,對於文章裡面一些局限於我自己知識積累的觀點,希望沒有跳走堅持看完的朋友,能夠予以指正和鼓勵. 這個系列的初衷是便於自己 ...


這個系列的初衷是便於自己總結與回顧,把筆記本上面的東西轉移到這裡,態度不由得謹慎許多,下麵是我參考的資源:

 ASP.NET Core 中文文檔目錄

記在這裡的東西我會不斷的完善豐滿,對於文章裡面一些局限於我自己知識積累的觀點,希望沒有跳走堅持看完的朋友,能夠予以指正和鼓勵.

 

系列目錄

(1)Starup

 

 

 

基礎知識

在 ASP.NET Core 中,Startup 類提供了應用程式的入口,所有應用程式中都有 Startup 類。

基本格式如下:
 1 public class Startup
 2 {
 3    // Use this method to add services to the container.
 4    public void ConfigureServices(IServiceCollection services){
 5           ...
 6    }
 7  
 8    // Use this method to configure the HTTP request pipeline.
 9    public void Configure(IApplicationBuilder app){
10           ...
11    }
12 }
  ConfigureServices:Startup 類中的公開可選方法,用來配置應用程式內的服務,通過參數獲取一個IServiceCollection 實例並可選地返回 IServiceProvider.服務必須在服務容器中註冊後,才可在應用和 Configure 方法中使用.例如:控制器中的構造註入,就需要先在該方法中註冊,此時服務容器可以看作是IOC容器   Configure:Startup 類中的必選方法,用於指定 ASP.NET 應用程式將如何響應每一個 HTTP 請求。簡單來說,你可以配置每個請求都接收相同的響應。通常將複雜的管道配置封裝於 中間件(middleware) 之中,並通過擴展方法添加到 IApplicationBuilder 上。Configure 方法必須接受一個 IApplicationBuilder 參數.   需要註意的是:onfigureServices 需要在 Configure 之前被調用。這一點非常重要,這是因為像 ASP.NET MVC 中的某些功能,需要從 ConfigureServices 中請求某些服務,而這些服務需要在接入請求管道之前先被加入 ConfigureServices 中。  

可用服務

ASP.NET Core 在應用程式啟動期間提供了一些預設註冊的應用服務和對象。你可以非常簡單地使用這些服務,只需要在在 Startup 類的構造函數或是它的 Configure 與 ConfigureServices 方法中的一個包含合適的介面即可。下麵定義了在 Startup 類中對每個方法可用的服務。框架服務和對象包括:   IApplicationBuilder 被用於構建應用程式的請求管道。只可以在 Startup 中的 Configure 方法里使用   IApplicationEnvironment 提供了訪問應用程式屬性,類似於ApplicationName 、ApplicationVersion 以及 ApplicationBasePath。可以在 Startup 的構造函數和 Configure 方法中使用。   IHostingEnvironment 提供了當前的 EnvironmentName、WebRootPath 以及 Web 根文件提供者。可以在 Startup 的構造函數和 Configure 方法中使用。   ILoggerFactory 提供了創建日誌的機制。可以在 Startup 的構造函數或 Configure 方法中使用。   IServiceCollection 當前容器中各服務的配置集合。只可在 ConfigureServices 方法中被使用,通過在該方法中配置可使服務在應用程式中可用。    等等

服務擴展

如果想一次註冊多個服務,而又不想在ConfigureServices方法中依次添加,該怎麼辦呢? 我們只需要一個擴展方法就可以搞定
 1     public static class ServiceCollectionExtension
 2     {
 3         public static void AddSomeServices(this IServiceCollection 
 4             services)
 5         {
 6             services.AddScoped(IFirstService, FirstService);
 7             services.AddScoped(ISecondService,SecondService);
 8             services.AddScoped(IThirdService, ThirdService);
 9         }
10     }

在ConfigureServices方法註冊一下即可:

 1 services.AddSomeServices();    這樣,一下子就註冊了3個服務,而不需要一一添加   (終)  

文檔信息

 


感謝您的閱讀,如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕。本文歡迎各位轉載,但是轉載文章之後必須在文章頁面中給出作者和原文連接

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Python3 基礎入門 編碼 在python3中,預設情況下以UTF 8編碼。所有字元串都是 unicode 字元串,當然也可以指定不同編碼。體驗過2.x版本的編碼問題,才知道什麼叫難受。 註釋 當行註釋: 被註釋內容 多行註釋:'''被註釋內容''',或者"""被註釋內容""" 行與縮進 縮進的 ...
  • TreeSet真的是使用TreeMap來存儲元素的嗎? TreeSet是有序的嗎? TreeSet和LinkedHashSet有何不同? ...
  • 今天老師講了多態的使用 多態是同一個行為具有多個不同表現形式或形態的能力。 多態的優點: 1. 消除類型之間的耦合關係 2. 可替換性 3. 可擴充性 4. 介面性 5. 靈活性 6. 簡化性 我個人認為 可替換性 可擴充性 靈活性 到是很充分的體現出來了。 現在就用問題來體現吧 !!! 1、創建一 ...
  • 根據老師的要求寫了一段然後在評講的時候在修該一些; 貓的: public class Cat extends Animal{ public void methodCat(){ System.out.println("貓會抓老鼠"); } } 蛇的: public class Snake extend ...
  • 以下都是我在使用Devc++的過程中出現過的錯誤,通過查找資料解決問題,今天小小地記錄、整理一下。 1.[Error] invalid conversion from 'const char*' to 'char' [-fpermissive] 出現該錯誤的原因是:使用字元串操作函數 strcmp, ...
  • 工作流為流程中的一種,可以實現無需用戶干預的業務流程自動化,用戶通常使用工作流流程來發起不需要任何用戶交互的自動化。本文介紹工作流的基本概念與簡單使用。 ...
  • 如何你希望你的 WPF 程式能夠以 Windows 的保護機制保護起來,不被輕易反編譯的話,那麼這篇文章應該能幫到你。 介紹 MSIX 是微軟於去年的 Windows 開發者日峰會 上推出的全新應用打包解決方案。其目的是取代舊式的軟體打包方式,可用於 Win32、WindowsForm 、 WPF ...
  • 1、OpenFileDialog 1 private void FileOpen_Click(object sender, EventArgs e) 2 { 3 OpenFileDialog openFile = new OpenFileDialog();//創建OpenFileDialog對象 4 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...