我正在将一些lightInject代码转换为.netcore DI
在.netcore DI中,我们具有用于注册服务的AddSingleton和AddTransient函数。 在lightInject中,我有RegisterMethod。因此,我只想知道Register方法在我们调用时是仅注册一个实例还是多个实例。
答案 0 :(得分:1)
基于documentation,除非另有说明,否则LightInject的默认行为是将所有对象视为瞬态。因此,在.Net Core中,您需要将服务注册为瞬态。
有关寿命的一些信息:
瞬态 每次从服务容器中请求时,都会创建瞬态生存期服务(AddTransient)。此生命期最适合轻量级,无状态服务。
范围 每个客户请求(连接)都会创建一次作用域生命周期服务(AddScoped)。
单人 单例生存期服务(AddSingleton)是在首次请求时创建的(或者在运行Startup.ConfigureServices并使用服务注册指定实例时创建)。每个后续请求都使用相同的实例。
这是.Net Core依赖项注入文档的link。