最近跑过去,想知道那里有人能给我一个很好的解释。我正在进行一些重构并创建一个spring上下文来从嵌入式配置文件中获取已配置的服务,如下所示:
var myService =
new XmlApplicationContext("assembly://MyAssembly/MyNamespace/MyService.config").GetObject(
"myService") as MyService;
通常这似乎工作正常,但在这种情况下,因为它在静态方法内部导致内存泄漏,我想了解为什么所以我将来避免这种事情。该方法首先不应该是静态的,但这是另一个问题。通常,我避免这样做,并通过web.config直接将我的服务注入到ASP.Net页面,但在这种情况下它是权宜之计,所以不要打扰告诉我,我做错了,我知道。 - )
最高
答案 0 :(得分:0)
如果您有静态方法并保留myService实例句柄,那么它将与Spring.NET的单例映射共享。只要你有参考,应用程序上下文也会坚持下去。虽然这并没有完全解释这种情况,如果内存不断增长,除非你将每个创建的对象保存在静态类中......