You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

依赖注入瞬态类B内部变更后,类A中B实例的变化是否同步?

瞬态依赖B的状态变更是否会在A的实例中体现?

答案是会体现,具体原因如下:

  1. 瞬态注册的核心逻辑:瞬态意味着每次从DI容器请求B类型实例时,容器都会生成一个全新的实例。但对于类A而言,它仅在自身实例化时通过构造函数请求一次B实例——这个实例会被A的bObj字段持续持有,只要A的实例还存在,它就始终指向同一个B对象。

  2. 结合你的代码场景分析:

    • 当A被DI容器创建时,容器会生成一个B实例注入到A的构造函数,此时A的bObj就指向这个特定的B实例。
    • 当该B实例通过事件触发调用RecreateStorageClient方法,其内部的sClient字段会被重新初始化(完成状态变更)。
    • 后续A调用SomeMethod时,通过bObj.GetStorageLayerClient()获取到的必然是更新后的sClient,因为访问的是同一个B实例的内部状态。

额外提醒:如果存在多个A的实例,每个A都会持有独立的B实例(因为B是瞬态)。其中一个A所持B的状态变更,不会影响其他A实例中的B,但同一个A实例内部的B状态变更,一定会在该A的后续调用中体现。

内容的提问来源于stack exchange,提问作者Vic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:05:13