将 lightInject 转换为 .netcore DI

Converting lightInject to .netcore DI

我正在将一些 lightInject 代码转换为 .netcore DI

在.netcore DI中,我们有AddSingleton和AddTransient函数来注册服务。 在 lightInject 中,我有 RegisterMethod。所以我只想知道当我们调用时,Register 方法是只注册单例实例还是多例实例。

基于documentation LightInject 中的默认行为是将所有对象视为瞬态,除非另有说明。因此,在 .Net Core 中,您需要将服务注册为 transient.

关于生命周期的一点点:

瞬态 每次从服务容器请求临时生命周期服务 (AddTransient) 时都会创建它们。此生命周期最适合轻量级、无状态的服务。

作用域 每个客户端请求(连接)创建一次范围内的生命周期服务(AddScoped)。

单例 单例生命周期服务 (AddSingleton) 在第一次被请求时创建(或者当 Startup.ConfigureServices 为 运行 并且在服务注册时指定了一个实例)。每个后续请求都使用相同的实例。

这里是 link .Net Core 依赖注入文档。