【发布时间】:2010-10-09 09:07:12
【问题描述】:
使用 Castle Windsor,我有一个组件配置了短暂的生活方式:
<component id="publish.mapping.default"
service="IMyService, MyAssembly"
type="MyServiceImplementation, Myassembly"
lifestyle="transient" />
将像这样使用:
var service = container.Resolve<IMyService>(componentId);
// service usage ....
// service goes out of scope ...
我的问题是,服务实例在超出范围后是否会被垃圾回收,或者 Castle Windsor 是否会保留引用?我找到了this similar question,这意味着后者可能是这种情况 - 但在检查了那里发布的链接之后,我不确定讨论是关于保留引用,还是关于确保对象在实现 IDisposable 时被处置.我的对象不需要被处置。
如果 Castle Windsor 保留实例,是否有任何简单的方法可以防止这种情况(可能通过配置)?
编辑
看来,我需要设置发布跟踪政策。这可以在 xml 配置文件中配置,还是需要在代码中设置?是否可以按组件设置发布跟踪策略?
【问题讨论】:
标签: c# .net castle-windsor transient