IOC 및 생성자 주입과 함께 루트 구성 패턴을 사용하는 WPF 응용 프로그램이 있습니다. View Models의 생성자에있는 대부분의 매개 변수는 리포지토리입니다. 리포지토리의 일부는 싱글 톤 라이프 스타일을 사용하여 캐싱하고 있습니다. 보기가 닫히 자마자 메모리를 해제하려면 모든보기 모델이 일시적입니다.성 Windsor IoC - Singleton/Transient 참조가있는 메모리 누수
그러나 일시적인보기 모델에서 단일 저장소에 대한 참조는 더 이상 사용되지 않으면 메모리에 유지되며 IOC 컨테이너가이를 해제하지 않도록 유지합니다.
더 이상 사용하지 않을 때 수업을 취소 할 수있는 패턴이 있습니까? ViewModels에 IDisposable을 구현하고 저장소 참조를 null로 설정하려고했지만 올바르게 작동하지 않습니다.
싱글 톤에 대한 참조가있는 과도 상태가 좋습니다. 이것은 문제의 원인이 아닙니다. 메모리 누수를 피하려면 모든 Resolve()에 대해 일치하는 Release()가 있어야합니다. –
동의. 내가보기의 닫힌 이벤트에 연결하고 이전에 해결했던 인스턴스를 릴리스했습니다. – Klaws86