這個系列的初衷是便於自己總結與回顧,把筆記本上面的東西轉移到這裡,態度不由得謹慎許多,下麵是我參考的資源: ASP.NET Core 中文文檔目錄 記在這裡的東西我會不斷的完善豐滿,對於文章裡面一些局限於我自己知識積累的觀點,希望沒有跳走堅持看完的朋友,能夠予以指正和鼓勵. 這個系列的初衷是便於自己 ...
這個系列的初衷是便於自己總結與回顧,把筆記本上面的東西轉移到這裡,態度不由得謹慎許多,下麵是我參考的資源:
記在這裡的東西我會不斷的完善豐滿,對於文章裡面一些局限於我自己知識積累的觀點,希望沒有跳走堅持看完的朋友,能夠予以指正和鼓勵.
系列目錄
基礎知識
在 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個服務,而不需要一一添加 (終)文檔信息
- 發表作者: 半路獨行
- 發表出處: 博客園
- 原文地址: https://www.cnblogs.com/banluduxing/p/10704198.html
- 版權信息:本作品採用知識共用署名-非商業性使用-相同方式共用 4.0 國際許可協議進行許可。
感謝您的閱讀,如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕。本文歡迎各位轉載,但是轉載文章之後必須在文章頁面中給出作者和原文連接。