2009-10-28 7 views
0

최근에이 문제를 놓고 누군가가 저에게 좋은 설명을 줄 수 있는지 궁금해합니다. 그래서 같이 포함 된 설정 파일에서 구성된 서비스를 잡기 위해 스프링 컨텍스트를 리팩토링을하고 만들었습니다 :정적 메서드 내에서 Spring.Net 컨텍스트를 인스턴스화하면 메모리 누수가 발생합니다.

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

일반적으로이 작업을 확인하지만,이 경우 것, 그것은 정적 내부 이후 메서드를 사용하면 메모리 누수가 발생하고 왜 이런 종류의 것을 피할 수 있는지 이해하고 싶습니다. 이 방법은 처음에는 정적이어서는 안되지만 다른 문제입니다. 일반적으로이 작업을 피하고 web.config를 통해 ASP.Net 페이지에 직접 서비스를 주입합니다. 그러나이 경우에는 편의가 있으므로 "완전히 잘못하고 있습니다."라는 말을 귀찮게하지 마십시오. -)

최대

답변

0

정적 방법을하고는 myService 인스턴스 핸들을 유지하는 경우, 그것은 당신이 참조가있는 한 애플리케이션 컨텍스트는 것이다 Spring.NET의 싱글지도 당신과 함께 공유 할 수 있습니다. 당신이 정적 클래스에 모든 생성 된 객체를 유지하지 않는 한, 메모리가 지속적으로 커지면이 상황을 완전히 설명하지는 못하지만 ...

관련 문제