0

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

var myService = new XmlApplicationContext("assembly://MyAssembly/MyNamespace/MyService.config").GetObject( "myService") as MyService;

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

最大限度

4

1 回答 1

0

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

于 2009-12-23T22:18:58.467 回答