【问题标题】:Converting lightInject to .netcore DI将 lightInject 转换为 .netcore DI
【发布时间】:2019-08-09 09:08:11
【问题描述】:

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

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

【问题讨论】:

  • docs 开始不是更容易吗?它说 LightInject 中的默认行为是将所有对象视为 transients,除非另有说明。

标签: c# dependency-injection light-inject


【解决方案1】:

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

关于生命周期的一点点:

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

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

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

这是一个link 到 .Net Core 依赖注入的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多