使用Castle Windsor,我配置了一个瞬态生命周期的组件:
我的问题是,当服务实例超出范围后,它是否会被垃圾回收,还是Castle Windsor会保留引用?我找到了这个类似的问题,暗示后者可能是情况 - 但在检查那里发布的链接后,我不确定讨论是关于保持引用还是确保对象在实现IDisposable时被处理。我的对象不需要被处理。
如果Castle Windsor保留实例,则是否有任何简单的方法可以防止这种情况发生(例如通过配置)?
编辑 看来,我需要设置释放跟踪策略。这可以在xml配置文件中配置吗,还是需要在代码中设置?可以按组件设置释放跟踪策略吗?
<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会保留引用?我找到了这个类似的问题,暗示后者可能是情况 - 但在检查那里发布的链接后,我不确定讨论是关于保持引用还是确保对象在实现IDisposable时被处理。我的对象不需要被处理。
如果Castle Windsor保留实例,则是否有任何简单的方法可以防止这种情况发生(例如通过配置)?
编辑 看来,我需要设置释放跟踪策略。这可以在xml配置文件中配置吗,还是需要在代码中设置?可以按组件设置释放跟踪策略吗?