Castle.Windsor 的新手,只是想检查一下。
我一直在阅读有关短暂生活方式和“释放你解决的问题”的文章——我为我的 ASP.NET MVC3 应用程序创建了一个资源提供程序,并正在我的新资源提供程序工厂(这是资源访问的“中心”)中解决它在 ASP.NET 中):
IContainerAccessor accessor = HttpContext.Current.ApplicationInstance as IContainerAccessor;
IResourceProvider provider = accessor.Container.Resolve<IResourceProvider>(new Arguments(new { resourceName = resourceName }));
LoggerService.Information(String.Format("Tracking? {0}", accessor.Container.Kernel.ReleasePolicy.HasTrack(provider)));
这IResourceProvider
是瞬态的,因此我可以将不同的值传递resourceName
给构造函数(因此可以从不同的资源文件返回不同的标签)。
我担心我需要明确调用Release
这些IResourceProvider
对象,但我的HasTrack
支票总是返回false
- 所以我认为这是一件好事?
容器没有跟踪这个对象,所以 GC 会(最终清理这个对象)。
那么容器何时会跟踪这个对象 - 如果它有创建佣金问题?