我了解 3 个主要生命周期:
- 单身 人士
- 范围
- 短暂的
但是,如果没有明确定义,我似乎找不到说明默认生存期的文档。
默认情况下,注册类型的生存期是瞬态的,即每次注入对象类型时都会创建一个新实例。
有关注射寿命的文档在这里...
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection#service-lifetimes-and-registration-options
短暂的
每次请求临时生存期服务时都会创建这些服务。 此生存期最适合轻量级无状态服务。
范围
每个请求创建一次作用域生存期服务。
单身 人士
单一实例生存期服务在首次创建时创建 请求(或者在运行配置服务时,如果您指定了实例 那里),然后每个后续请求将使用相同的实例
ASPNetcore 的服务注册要求您使用
诸如services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddScoped<IRoleHelper, PermissionRoleHelper>();
services.AddSingleton<IPermissionHelper, ApplicationPermissions>();
第三方注入框架(如 AutoFAC)会将对象注册为瞬态,而无需显式定义对象的备用生存期范围。