Следуя предложению «Инъекция зависимостей в .NET», я разрешаю корень композиции в каждом конструкторе страниц следующим образом:
public MyPageConstructor()
{
var container = (Castle.Windsor.WindsorContainer)HttpContext.Current.Application["DIcontainer"];
Controller = container.Resolve<MyPageController>();
}
Теперь, если я сделаю контроллер временным, я должен отпустить его вручную, когда страница выгружена. Если я сделаю это по запросу, Castle выдаст его для меня, когда запрос будет завершен, но может быть снижение производительности, я не уверен. В настоящий момент я стараюсь сделать объекты временными и самостоятельно справляться с выпуском.
Есть ли еще что-то, что стоит рассмотреть, и какова будет рекомендуемая практика?
Спасибо.