Замок wiki говорит, что в нескольких местах я должен ВСЕГДА вызвать контейнер. Relelease() для компонентов, разрешенных через контейнер. Это, очевидно, имеет смысл для сложных методов управления жизненным стилем (например, LifeStyle.Pooled) или при использовании специализированных средств...
Но действительно ли мне нужно выпустить синглтон (который живет до размещения контейнера) и нереализованные переходные объекты?. Если я выхожу через вызовы Release() для переходных объектов или одиночных вызовов, эти вызовы кажутся быть лишним -.eg в случае переходных объектов, не реализующих IDisposable, ядро просто замечает, что у него нет пути к объекту и возвращается...
Кажется, существует концепция "нагрузки компонента" для отслеживания "косвенных" ссылок на другие одноразовые компоненты, которые могут быть построены при разрешении переходного объекта. Я понимаю, что необходимо освободить временные объекты, если вы не знаете 100%, имеют ли они такие косвенные зависимости или нет. Является ли это основной причиной "побуждать" всех пользователей Castle к ALWAYS выпускать компоненты?