.NET Core 項目經驗總結:Startup.cs 介紹(二)


 

原文地址(個人博客):http://www.gitblogs.com/Blogs/Details?id=643c9664-dc4e-42cf-a15f-5368ebfcd7c9

 

第一次面對 Startup.cs 往往無從下手,本文記錄在項目中的經驗,不會涉入到內部的代碼實現以及相關的原理。

 

項目初始化完成startup.cs的原貌:

image.png

ConfigureServices:  將服務注入到容器中  比如:第三方組件

Configuere:配置http請求管道 ,比如:session,cookie

 

 

讀取配置信息

.Net Core 使用appsetting.json 存儲配置信息,如圖:

image.png

在文件中,增加了數據庫配置信息,怎么讀取呢?

      public void ConfigureServices(IServiceCollection services)
        {
            string connectionString = Configuration.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value;
            string providerMame = Configuration.GetSection("ConnectionStrings").GetSection("ProviderName").Value;
            services.AddMvc();
        }

Configuration.GetSection("節點名稱").GetSection("子節點名稱").Value
這只是讀取配置的一種方式,還有通過類映射配置信息方式,在以后的章節中詳細描述

 

依賴注入

依賴注入在 ASP.NET Core 中無處不存在,在之前打印參數的例子中同樣用到。依賴注入好處都有啥?為什么我們需要依賴注入?在 很好地解釋了:

對於控制器,我們有三種方式注入對象:構造函數、控制器動作、屬性注入。然而,在一般的類中,使用自帶的 DI 只能是構造函數注入。到底是哪種方式好,見仁見智。

ASP.NET Core 服務可以被配置為以下生命周期:

        瞬時(Transient)在它們每次請求時都會被創建。這一生命周期適合輕量級的,無狀態的服務。

        作用域 (Scoped)在每次請求中只創建一次。

  •  單例(Singleton)在它們第一次被請求時創建(或者如果你在 ConfigureServices運行時指定一個實例)並且每個后續請求將使用相同的實例。

 

        public void ConfigureServices(IServiceCollection services)
        {

            ...依賴注入代碼
            services.AddMvc();
        }

 

.Net Core 使用Session

.Net Core里使用Session需要添加Session類庫,項目上基於NuGet添加:Microsoft.AspNetCore.Session。

在startup.cs找到方法ConfigureServices(IServiceCollection services) 注入Session:

services.AddSession();

 

接下來我們要告訴Asp.net Core使用內存存儲Session數據,在Configure(IApplicationBuilder app,...):

app.UseSession();

在Controller中使用

image.png

 

 

.Net Core 使用Cache

說到內存緩存大家可能立馬想到了HttpRuntime.Cache,它位於System.Web命名空間下,但是在ASP.NET Core中System.Web已經不復存在

首先需要在ConfigureServices中注冊緩存服務

image.png

在下面的代碼中從Home控制器的構造函中獲取IMemoryCache實例

image.png

設置緩存 Set

 

_cache.Set("key", "value");

移除緩存 Remove

 

_cache.Remove("key");

 

 

.Net Core 使用異常信息

ASP.NET Core 2.0開始Microsoft.AspNetCore.All包里面包含了所有以Microsoft.AspNetCore開頭的包,只是需要在Startup類的Configure方法中進行配置

image.png

UseDeveloperExceptionPage放在你想捕獲的中間件之前,如app.UseMvc

注:為了應用程序的安全,一般不會在生產環境中啟起用開發者頁面(異常頁面)。

 

 

到這里,startup.cs 的基本情況介紹完成了,在以后的經驗總結中,會對每個配置點進行詳細的介紹!

 

 

原文地址(個人博客):http://www.gitblogs.com/Blogs/Details?id=643c9664-dc4e-42cf-a15f-5368ebfcd7c9


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM