Я пытаюсь понять несколько сложный сценарий. В принципе, если у меня есть класс X
, который зарегистрирован в замке, как LifestyleTransient()
:Переходный компонент с использованием компонента PerWebRequest, когда компонент PerWebRequest выходит из области видимости?
Component.For<IX>()
.ImplementedBy<X>()
.LifestyleTransient()
X
выглядит что-то вроде:
public X : IX
{
private IY _y;
public X(IY y)
{
_y = y;
}
....
}
и Y
зарегистрирована таким образом:
Component.For<IY>()
.ImplementedBy<Y>()
.LifestylePerWebRequest()
и выглядит следующим образом:
public Y : IY, IDisposable
{
private Object obj;
public Y()
{
obj = new Object();
}
public void Dispose()
{
obj.Dispose();
}
}
Если я создаю экземпляр X
и Release
это:
WindsorContainer Container;
IX x = Container.Resolve<IX>();
Container.Release(x);
когда же Dispose
дозвонились на Y
? Это в конце веб-запроса или когда выпущен экземпляр x? Вызывает ли вообще Dispose
?!
Примечание: Это несколько converluted пример, мой фактический пример является гораздо более сложным и invloves в MVC ControllerFactory и различные другие части технологии, но вопрос довольно сводится к вышесказанному в это Простейшая форма ,