Как я могу вызвать событие WebControls OnDisposed?

Я установил точки останова в моем Page Dispose (который переопределяет, но затем вызывает базовый Dispose) метод и мой OnDisposed обработчик.

Обработчик OnDisposed никогда не вызывается, но метод Page Dispose() вызывается.

Если вы не можете вызвать обработчик, какой смысл в событии?

Этот вопрос похож на этот вопрос.


person user420667    schedule 24.08.2011    source источник


Ответы (1)


AutoEventWireup = "true" - это то, что вам нужно для вызова OnDisposed.

Что означает свойство страницы AutoEventWireUp?

Вот хороший ответ, почему точка останова может не сработать.

При срабатывании OnDisposed

Что ж, они все являются частью жизненного цикла страницы, но проблема с удалением заключается в том, что это может произойти после того, как жизненный цикл страницы закончится. Когда ссылка на объект выходит за пределы области видимости, она остается на усмотрение сборщика мусора, и это может произойти после того, как страница полностью завершена, поэтому вы не можете гарантировать точку останова на них. Вы можете явно принудительно удалить утилиту, но на самом деле это не поможет вашей ситуации, так как это все равно серверные события. По крайней мере, я предполагаю, что вы этого хотите; способ сохранить состояние страницы на стороне клиента.

person rick schott    schedule 24.08.2011
comment
у меня уже есть autoeventwiredup. Все остальные события запускаются. (onunload, oninit и т. д.) - person user420667; 25.08.2011
comment
спасибо, что продолжили это. На самом деле я попытался явно избавиться от них, и это тоже не сработало. Насколько я понимаю, это мероприятие бесполезно и приведет только к путанице. - person user420667; 25.08.2011
comment
Кроме того, я не понимаю аргумента, что вы не можете пробиться к ним. Может быть, не на стороне клиента это имеет смысл ... но почему не на стороне сервера? Спасибо. - person user420667; 25.08.2011
comment
Еще одно ... один из комментаторов предложил записать в базу данных. Вместо этого я попытался записать в файл в обработчике. Файл не был записан. - person user420667; 25.08.2011
comment
Может, что-то с этим справляется? Попробуйте профилировщик памяти, это единственный способ узнать. - person rick schott; 25.08.2011
comment
К сожалению, у меня их нет. Удалось ли вам вызвать обработчик Dispose? - person user420667; 25.08.2011