Memory leaks 在静态方法中实例化Spring.Net上下文会导致内存泄漏

Memory leaks 在静态方法中实例化Spring.Net上下文会导致内存泄漏,memory-leaks,spring.net,Memory Leaks,Spring.net,最近遇到了这个问题,想知道是否有人能给我一个很好的解释。我正在进行一些重构,并创建了一个spring上下文,以便从嵌入式配置文件中获取一个已配置的服务,如下所示: var myService= 新的XmlApplicationContext(“assembly://MyAssembly/MyNamespace/MyService.config.GetObject( “我的服务”)作为我的服务 正常情况下,这似乎工作正常,但在这种情况下,由于它是在一个静态方法中,它导致了内存泄漏,我想了解为什么我

最近遇到了这个问题,想知道是否有人能给我一个很好的解释。我正在进行一些重构,并创建了一个spring上下文,以便从嵌入式配置文件中获取一个已配置的服务,如下所示:

var myService=
新的XmlApplicationContext(“assembly://MyAssembly/MyNamespace/MyService.config.GetObject(
“我的服务”)作为我的服务

正常情况下,这似乎工作正常,但在这种情况下,由于它是在一个静态方法中,它导致了内存泄漏,我想了解为什么我以后会避免这种事情。这个方法本来不应该是静态的,但这是另一个问题。通常情况下,我会避免这样做,并通过web.config将我的服务直接注入ASP.Net页面,但在这种情况下,这是权宜之计,所以不要麻烦告诉我我做错了,我知道。;-)


Max

如果您有静态方法,并且保留myService实例句柄,它将与Spring.NET的singleton map和您共享。只要您有引用,应用程序上下文也将保持不变。尽管这不能完全解释内存不断增长的情况,除非您将所有创建的对象都保留在内存中静态类