我理解3个主要的生命周期:
但是,如果没有明确定义,我似乎无法找到说明默认生命周期的文档。
答案 0 :(得分:2)
默认情况下,注册类型的生命周期为Transient,即每次注入对象类型时都会创建一个新实例。
注射寿命的文件在这里......
瞬态
每次请求时都会创建瞬态生命周期服务。 这种生命周期最适合轻量级无状态服务。
作用域
每个请求都会创建一次范围生命周期服务。
的Singleton
Singleton终身服务是在他们第一次创建时创建的 请求(或者在指定实例时运行ConfigureServices时) 那里)然后每个后续请求将使用相同的实例
aspnetcore的服务注册要求您使用诸如
之类的方法明确定义生命周期services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddScoped<IRoleHelper, PermissionRoleHelper>();
services.AddSingleton<IPermissionHelper, ApplicationPermissions>();
第三方注入框架(如autofac)会将对象注册为瞬态,而无需为对象明确定义备用生命周期范围。