<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
ASP.NET Core 2.0 中的 WebHost(實現 IWebHost 的基礎類別)是用於為程序提供 HTTP 伺服器功能的基礎結構專案,例如,如果正在實現 MVC Web 應用或 Web API 服務。 它提供 ASP.NET Core 中所有新的基礎結構優點,使使用者能夠使用依賴關係注入,在請求管道中插入中介軟體等,並精確地將這些 IHostedServices 用於後臺任務。
.NET Core 2.1 中引入了 Host(實現 IHost 的基礎類別)。 它能讓使用者擁有與 WebHost相似的基礎結構,使用它我們可以獲取和Asp.net core一樣的框架功能(依賴項注入、紀錄檔、設定、託管服務等),如果我們編寫一個服務的時候,它提供了一個非常好用的框架。一個基本的範例程式碼如下:
public static async Task Main(string[] args) { var host = new HostBuilder().Build(); await host.RunAsync(); }
主要有如下兩個步驟
通過HostBuilder生成一個Host
指向Host的Run函數執行主機
前面的程式碼只有一個空環境,要實現依賴項注入、紀錄檔、設定、託管服務等功能,還需要進一步的設定,本文的這裡就簡單的介紹一下通用主機的設定方法。
系統設定有兩個函數ConfigureHostConfiguration和ConfigureAppConfiguration
hostBuilder.ConfigureHostConfiguration(configHost => { configHost.SetBasePath(Directory.GetCurrentDirectory()); configHost.AddJsonFile("hostsettings.json", optional: true); configHost.AddEnvironmentVariables(prefix: "PREFIX_"); configHost.AddCommandLine(args); });
這兩個函數使用比較類似,它們的關係是主機設定用於初始化 IHostingEnvironment,以供在應用的構建過程中使用。
通用主機整合了DI框架,如果要使用DI框架,則需要呼叫ConfigureServices函數極限依賴關係注入:
hostBuilder.ConfigureServices((context, services) => { services.AddScoped<MyService>(); });
我們可以通過在ConfigureServices中通過DI框架設定紀錄檔系統,但HostBuilder單獨提供了一個設定紀錄檔的介面ConfigureLogging:
hostBuilder.ConfigureLogging((hostContext, configLogging) => { configLogging.AddConsole(); configLogging.AddDebug(); });
它內部實際上依然是通過DI框架設定的紀錄檔系統。
除了通過new一個HostBuilder外,系統還提供了一個建立HostBuilder的方法。
Host.CreateDefaultBuilder()
它的內部也是呼叫HostBuilder的,但他提供了一般常用的選項,具體包括:
將內容根設定為由 Directory.GetCurrentDirectory 返回的路徑。
通過以下物件載入主機設定:
字首為 DOTNET_ 的環境變數。(例如,DOTNET_ENVIRONMENT)。
命令列引數。
按以下順序載入應用設定:
appsettings.json。
appsettings.{Environment}.json。
應用在使用入口程式集的 Development 環境中執行時的機密管理器。
環境變數。
命令列引數。
設定控制檯和偵錯輸出的紀錄檔記錄。 紀錄檔記錄包含 appsettings.json 或 appsettings.{Environment}.json 檔案的紀錄檔記錄設定部分中指定的紀錄檔篩選規則。
如果應用環境為"開發",請將 ServiceProviderOptions.ValidateScopes 設為 true。 有關詳細資訊,請參閱作用域驗證。
也就是說,它基本上提供了我們所常用的大部分功能,並且它返回的也是一個HostBuilder,我們還可以在它的基礎上接著設定,實現我們系統中的特有功能
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45