Asp.Net Core實戰(乾貨)

轉自 : https://www.cnblogs.com/sportsky/p/9400419.htmlhtml

 

序言git

使用.NET Core,團隊能夠更容易專一的在.net core上工做。好比核心類庫(如System.Collections)的更改仍然須要與.NET Framework相同的活力,可是ASP.NET Core或Entity Framework Core能夠更輕鬆地進行實質性更改,而不受向後兼容性的限制。.NET Core借鑑了.NET Framework的最佳實踐,並將軟件工程的最新進展結合在一塊兒。github

寒暄、扯淡已經完畢,,,下面是我最近時間對.Net Core整理的相關知識,以爲這些在項目中是最基礎且最會應用到的,,,,不喜歡扯理論,直接擼碼:數據庫

一、淺談Startup類json

二、自定義路由跨域

三、跨域設置app

四、自定義讀取配置文件信息函數

五、程序集批量依賴注入佈局

六、使用NLog寫入文件日誌學習

七、使用NLog寫入數據庫日誌

八、Nlog標籤解讀

1、淺談Startup類

在ASP.NET Core應用程序中,必須包含有Startup類,在主函數調用中,Startup類名能夠隨意命名,但一般使用系統默認的startup,能夠經過startup的構造函數進行依賴注入startup類中必須包含Configure方法同時能夠根據實際狀況添加ConfigureServices方法,這兩個方法均在應用程序運行時被調用。Startup 類的 執行順序:構造 -> configureServices ->configure

ConfigureServices方法:主要用於服務配置,好比依賴注入(DI)的配置,使用時該方法必須在Configure方法以前

Configure方法:用於應用程序響應HTTP請求,經過向IApplicationBuilder實例添加中間件組件來配置請求管道

2、自定義路由

在Startup類的Configure方法配置

  View Code

3、跨域設置

在Startup類的ConfigureServices方法配置

  View Code

其中「AppDomain」這個名字是自定義的,你們能夠根據本身的喜愛定義不一樣的名字,配置完成以後,在控制器上面添加[EnableCors("AppDomain")]特性便可,若是要實現全局的跨域設置,能夠在Configure方法裏面配置app.UseCors("AppDomain"),即能實現全局的跨域設置

4、自定義讀取配置文件信息

 這裏是寫的一個公共方法去讀取配置文件appsettings.json

  View Code
  View Code
  View Code

截圖看效果

5、程序集批量依賴注入

咱們都知道依賴注入主要是爲了方便解耦,解除應用程序之間的依賴關係,在我看來DI、IOC這二者差很少是同樣的,DI是從應用程序的角度而IOC是從容器的角度,它們主要是對同一件事情的不一樣角度的描述。然而,,,,,,當咱們項目業務比較多的時候,若是要實現多個業務的注入,一般方法是手動一個個的添加註入,這樣可能有點太繁瑣,因此就想到了利用反射實現批量注入,,,,,,

幫助類

  View Code
  View Code

 在Startupl類的ConfigureServices方法中添加

  View Code

調用(Ps:Core.BLL這個類庫裏面分別有一個接口IAccountService和一個類AccountService,AccountService類去繼承接口IAccountService並實現接口裏面的方法)

  View Code
  View Code

 6、使用NLog寫入文件日誌

新建配置文件命名爲Nlog.config

  View Code

 在Startup類Configure方法中添加配置

  View Code

寫入日誌到文件

  View Code

7、使用NLog寫入數據庫日誌

添加依賴項:Microsoft.Extensions.Logging和NLog.Extensions.Logging

新建配置文件命名爲Nlog.config

  View Code

同第六項代碼同樣,也是在Configure方法設置,寫入日誌到數據庫

  View Code
  View Code

8、Nlog標籤解讀

NLog的使用方式基本上和其它的Log庫差很少,用於輸出日誌的級別包括:Trace,Debug,Info,Warn,Error,Fatal

<nlog>標籤
autoReload 修改配置文件後是否容許自動加載無須重啓程序
throwExceptions 內部日誌系統拋出異常
internalLogLevel 可選Trace|Debug|Info|Warn|Error|Fatal決定內部日誌的級別 Off 關閉
internalLogFile 把內部的調試和異常信息都寫入指定文件裏
建議throwExceptions的值設爲「false」,這樣因爲日誌引起的問題不至於致使應用程序的崩潰。
<targets>標籤
<target />區域定義了日誌的目標或者說輸出 ,,在這裏能夠按需設置文件名稱和格式,輸出方式。
name:自定義該target的名字,可供rule規則裏使用
type: 定義類型,官方提供的可選類型有:
Chainsaw|ColoredConsole |Console |Database|Debug|Debugger|EventLog|File|LogReceiverService|Mail|Memory|MethodCall|Network |NLogViewer|Null |OutputDebugString|PerfCounter|Trace|WebService
不過經常使用的仍是 File \Database \Colored Console\ Mail

layouts 用來規定佈局樣式,語法「${屬性}」,能夠把上下文信息插入到日誌中,更多佈局渲染器可參考https://github.com/nlog/NLog/wiki/Layout%20Renderers

<rules>標籤

各類規則配置在logger裏
name - 記錄者的名字
minlevel - 最低級別
maxlevel - 最高級別
level - 單一日誌級別
levels - 一系列日誌級別,由逗號分隔。
writeTo - 規則匹配時日誌應該被寫入的一系列目標,由逗號分隔。
 
 
 

 目前只整理了這些,後續會持續更新到這裏面,若有不合理的地方,請你們加以斧正,,,但願能和你們共同窗習、共同進步,,

相關文章
相關標籤/搜索