Почему Замок Виндзор держится на временных объектах?
Недавно я заметил, что мое приложение ест память, которая никогда не выпускается. После профилирования с помощью CLRProfiler я обнаружил, что контейнер Castle Windsor, который я использую, удерживает объекты. Эти объекты объявлены с атрибутом lifestyle = "transient" в config xml.
Я нашел, если я положил явный вызовIWindsorContainer.Release(hangingObject)
, что он бросит свои ссылки.
Это вызывает проблему, хотя я не ожидал, что с временным объектом образа жизни CastleWindsor сохранит ссылку и эффективно создаст утечку. Это будет довольно обыденная и подверженная ошибкам задача, заключающаяся во вставке явных вызовов Release во всех соответствующих местах.
Вы видели эту проблему, и есть ли у вас какие-либо предложения о том, как ее обойти?