10 .NET HostBulider

本文详细解读了.NET Core中HostBuilder的作用,包括DI容器的使用、各种日志注册、配置设置以及IHostedService的注册与生命周期管理。通过实例演示,了解如何将HostBuilder用于控制台应用和后台服务开发。

word文档地址:https://github.com/IceEmblem/LearningDocuments/tree/master/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Windows%20%E5%B9%B3%E5%8F%B0/Net

.NET 的一个重要的概念IHost(主机),其由HostBuilder生成

示例

var builder = new HostBuilder();
// 生成Host
builder.Build()
    // 运行Host
    .Run();

HostBuilder提供的功能

HostBuilder提供了以下功能
1.依赖关系注入容器 (DI)
2.Logging注册
3.Configuration配置注册
4.IHostedService 注册
5.Host生命周期管理

依赖关系注入容器

HostBuilder 提供已了默认的依赖注入容器,如果我们想使用其他依赖注入容器,则可以调用UseServiceProviderFactory替换

var builder = new HostBuilder();
builder.UseServiceProviderFactory(new AutofacServiceProviderFactory());

Logging注册

HostBuilder默认注册了如下日志提供者,如果需要其他日志则需要自己注册
-控制台
-调试
-EventSource
-EventLog(仅当在 Windows 上运行时)
日志的注册五花八门,这里不示例了

Configuration配置注册

我们可以使用如下方法给Host添加配置

builder.ConfigureHostConfiguration((config) =>
{
   
   
    // 配置Host的路径
    config.SetBasePath(Directory.GetCurrentDirectory());
    // 添加Json配置文件
    config.AddJsonFile("hostsettings.json", optional: true);
    // 添加环境变量配置
    config.AddEnvironmentVariables(prefix: "PREFIX_");
    // 添加命令行配置
    config.AddCommandLine(args);
    
    Dictionary<string, string> source = new 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值