Castle Long Lived Singleton Типизированный Завод Инъекции - PullRequest
0 голосов
/ 14 июля 2011

Недавно я пытался отладить утечку памяти в приложении (службе Windows), над которым я работаю, и обнаружил сотни тысяч WeakReferences - все они мертвы. После его отслеживания создается впечатление, что они создаются Виндзором TypedFactory.

У меня есть следующее:

[Singleton]
public class MySingleton
{
     public MySingleton(Func<MyOtherType> createMyOtherType) { ... } 
}

[Transient]
public class MyOtherType : IDisposable { ... }

createMyOtherType часто вызывается (поскольку MyOtherType - это IDisposable и Transient). Кажется, что каждый раз, когда я звоню createMyOtherType, WeakReference создает *1013* для отслеживания этого экземпляра.

Я предполагаю, что это поведение разработано, но есть ли способ, чтобы я сказал типизированной фабрике очистить ее WeakReferences за время жизни MySingleton?

...