本节介绍 Util 项目启动初始化过程. 文章分为多个小节,如果对设计原理不感兴趣,只需阅读基础用法部分即可. 基础用法 查看 Util 服务配置,范例: var builder = WebApplication.CreateBuilder( args ); builder.AsBuild() .AddAop() .AddSerilog() .AddUtil(); 注意其中调用了 AddUtil 方法. AddUtil 方法调用启动器进行初始化. 设计动机 有些服务需要配置,但并不需要传递配置参数. 对于这类服务,我们希望自动完成配置,而不是手工调用 AddXXX() 方法. Util项目需要一种自动执行特定初始化代码的方法. Util启动时扫描全部程序集,找出特定代码块,并执行它们. 这些被自动执行的代码块,称为服务注册器. Util 启动器的设计和代码主要从 NopCommerce 吸收而来,并在项目实战中不断改进. 采用程序集扫描,是一种简单轻量的启动方式,不需要进行任何配置. 源码解析 在 IHostBuilder 和 IAppBuilder 接口上扩展了 AddUtil 方法.