最近遇到了这个问题,想知道是否有人能给我一个很好的解释。我正在做一些重构,并创建了一个spring上下文,以便从嵌入式配置文件中获取已配置的服务,如下所示:
var myService = new XmlApplicationContext("assembly://MyAssembly/MyNamespace/MyService.config").GetObject( "myService") as MyService;
通常情况下,这似乎工作得很好,但在这种情况下,因为它是在静态方法中,它导致了内存泄漏,我想知道为什么,所以我在未来避免了这种事情。该方法一开始就不应该是静态的,但这是另一个问题。通常,我会避免这样做,并通过web.config将我的服务直接注入到ASP.Net页面上,但在这种情况下,这是一种权宜之计,所以不要费心告诉我我做错了,我知道。;-)
最大值
发布于 2009-12-24 06:18:58
如果你有静态方法,并且你保留了myService实例句柄,它将与Spring.NET的单例映射和你共享。只要您有引用,应用程序上下文就会一直存在。虽然这并不能完全解释内存不断增长的情况,除非您将创建的每个对象都保存在静态类中……
https://stackoverflow.com/questions/1640582
复制相似问题