gpt4 book ai didi

c# - CaSTLe Windsor什么时候发布 transient 组件

转载 作者:行者123 更新时间:2023-11-30 13:59:12 25 4
gpt4 key购买 nike

我有 Java 和 Spring 背景,对 CaSTLe Windsor 还比较陌生。我读过,了解 CaSTLe 何时发布 transient 组件很重要,因为它会跟踪创建的所有组件。不过,我很难理解何时会发布我的组件。这是我的模型的基础知识:

Singleton -> Singleton Typed Factory -> Transient Objects

如果我释放此链中的第一个单例,将 typed factory 创建的所有临时对象被发布?我可以进行任何 API 调用来检查是否是这种情况?我在 CaSTLe Windsor 网站上找不到任何全面的 API 文档。我找到的文档对我来说似乎不太清楚。

编辑:我的问题归结为两个主要问题。

  1. 如果我有一个依赖于单例类型工厂 (B) 的单例对象 (A),并且我释放了单例 A,那实际上会释放 B 吗?下面的回答中提到的博客文章说,对单例对象的释放调用被忽略,所以我的假设是不会释放它。
  2. 如果我有一个单例类型的工厂,多个 Web 请求同时使用它来创建临时对象并由其中一个 Web 请求释放,所有临时对象是否会被释放,无论它们是是否从该网络请求创建?似乎根据 Web 请求或短暂的生活方式创建类型化工厂更好。

最佳答案

这里有一篇详细的帖子,解释了 Windsor 如何跟踪对象以及何时需要调用 Release:http://kozmic.pl/2010/08/27/must-i-release-everything-when-using-windsor/

更新您的更新

  1. 单例上的任何发布都将被忽略,所以,是的,你是对的——它不会被发布。

  2. 您只需要担心您专门解决的发布组件。如果它是由 Windsor 解决的(通过 Typed Factory Facility、子依赖解析器等...),请不要担心。

关于c# - CaSTLe Windsor什么时候发布 transient 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14072208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com