欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

.Net Core 2.1 通用主机(Core 在控制台应用程序中的应用)

发布时间:2023/12/4 55 豆豆
生活随笔 收集整理的这篇文章主要介绍了 .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 在控制台应用程序中的应用)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。