如果对象的类型映射到 Unity 中的 TransientLifetimeManager,垃圾收集器是否会回收该对象?

Will garbage collector recycle an object if the object's type was mapped with the TransientLifetimeManager in Unity?

如果对象的类型映射到 Unity 中的 TransientLifetimeManager,垃圾收集器是否会回收对象?

我假设垃圾收集器将回收该对象。所以,这让我提出以下问题:那么 TransientLifetimeManagerExternallyControlledLifetimeManager 之间有什么区别?两者都不跟踪对象生命周期。

万一用TransientLifetimeManager注册的类型不会被回收我还有一个问题:为什么开发人员会做出这样的决定?保留使用 TransientLifetimeManager 注册的类型似乎不合理,因为可能会创建很多类型。而且,一旦创建了使用 TransientLifetimeManager 注册的类型的对象,IoC 容器只能向消费者提供一次引用,因此,再次保留对对象的引用没有意义。

注意

问题与Unity3D完全无关。请保持专业,如果您不知道问题的内容,请不要编辑问题。

TransientLifetimeManager 不跟踪生命周期,但它会在每次解析时创建新实例。 ExternallyControlledLifetimeManager 不跟踪生命周期,只创建一个实例。容器仅持有对对象的弱引用,因此在容器处理后对象将保持活动状态。

更多信息见article and examples