.Net Core 2.1 通用主机(Core 在控制台应用程序中的应用)
一、介紹
官方文檔中說,Microsoft.AspNetCore.App 元包(ASP.NET Core 2.1 或更高版本)包含通用主機的Microsoft.Extensions.Hosting包,當創建控制臺項目以后并沒有相應的包。
在官方案例中所用的Nuget包有:
1.?Microsoft.Extensions.Hosting
2.?Microsoft.Extensions.Configuration.Json
3.?Microsoft.Extensions.Configuration.EnvironmentVariables
4.?Microsoft.Extensions.Configuration.CommandLine
5.?Microsoft.Extensions.DependencyInjection
6.?Microsoft.Extensions.Logging.Console
7.?Microsoft.Extensions.Logging.Debug
托管服務實現 IHostedService 接口并且是執行代碼的入口點。 每個 IHostedService 實現都按照 ConfigureServices 中服務注冊的順序執行。 主機啟動時,每個 IHostedService 上都會調用 StartAsync。主機正常關閉時,以反向注冊順序調用 StopAsync。
托管服務還有,BackgroundService:排隊的后臺任務,IScopedProcessingService:有作用域的服務
二、主機配置
默認的情況下,是不配置主機環境變量。需要配置可以調用ConfigureHostConfiguration和ConfigureAppConfiguration方法進行配置,并且他們可以同時調用多次得到累計結果
代碼中調用兩次ConfigureHostConfiguration方法都是加載配置文件。加載的文件在當前方法無法獲取到文件的類容。例如第一次調用加載hostsettings.json文件無法立刻獲取改文件內容。在加載appsettings.json這個方法里就能拿到hostsettings.json的內容
三、依賴關系注入,配置日志
ConfigureServices:將服務添加到應用的依賴關系注入容器。 可多次調用 ConfigureServices,并得到累計結果。
ConfigureLogging:添加一個委托,用于配置提供的 ILoggingBuilder。 可以利用相加結果多次調用 ConfigureLogging
?四、IApplicationLifetime接口和IHostedService接口的實現類
IApplicationLifetime 允許啟動后和關閉活動,包括正常關閉請求。通過構造函數將 IApplicationLifetime 服務注入到任何類中,用于注冊事件
ApplicationStarted:完全啟動觸發,ApplicationStopped:正在完成關閉觸發,ApplicationStopping:正在執行關閉觸發
StopApplication() 方法用于關閉整個主機
相關文章:
Asp.net Core 2.1新功能Generic Host(通用主機)深度學習
在.NET Core微服務中使用HostBuilder和Generic Host
原文地址:https://www.cnblogs.com/haosit/p/9713446.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的.Net Core 2.1 通用主机(Core 在控制台应用程序中的应用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好代码是管出来的——使用Jenkins搭
- 下一篇: 产品开发管理之流程和体系(总篇)