Por que Castle Windsor mantém objetos transientes?
Recentemente, notei que meu aplicativo parece estar comendo uma memória que nunca é liberada. Depois de fazer o perfil com o CLRProfiler, descobri que o contêiner Castle Windsor que estou usando está segurando objetos. Esses objetos são declarados com o atributo lifestyle = "transitório" no config xml.
Eu encontrei se eu colocar uma chamada explícita paraIWindsorContainer.Release(hangingObject)
, que vai cair suas referências.
Isso está causando um problema, no entanto, eu não esperava que, com um objeto transitório de estilo de vida, o CastleWindsor mantivesse uma referência e criasse um vazamento. Vai ser uma tarefa bastante mundana e propensa a erros, inserindo chamadas de Release explícitas em todos os lugares apropriados.
Você já viu esse problema e tem alguma sugestão de como contorná-lo?