我正在将一些 lightInject 代码转换为 .netcore DI
在 .netcore DI 中,我们有用于注册服务的 AddSingleton 和 AddTransient 函数。在 lightInject 中,我有 RegisterMethod。所以我只想知道当我们调用时,Register 方法是只注册单例还是多个。
我正在将一些 lightInject 代码转换为 .netcore DI
在 .netcore DI 中,我们有用于注册服务的 AddSingleton 和 AddTransient 函数。在 lightInject 中,我有 RegisterMethod。所以我只想知道当我们调用时,Register 方法是只注册单例还是多个。
基于文档LightInject 中的默认行为是将所有对象视为瞬态,除非另有说明。因此,在 .Net Core 中,您需要将服务注册为transient。
关于生命周期的一点点:
瞬态 瞬态生命周期服务 (AddTransient) 是在每次从服务容器请求时创建的。这个生命周期最适合轻量级、无状态的服务。
Scoped Scoped 生命周期服务 (AddScoped) 为每个客户端请求(连接)创建一次。
单例 单 例生命周期服务 (AddSingleton) 在第一次被请求时创建(或者在 Startup.ConfigureServices 运行并使用服务注册指定实例时)。每个后续请求都使用相同的实例。
这是.Net Core 依赖注入文档的链接。