Pregunta

Cuando almaceno un delegado (que apunta a un método de página) en estado de sesión, recuérdelo después de una devolución de datos y ejecútelo, el objetivo del delegado es el objeto de página anterior y no el actual, ¿hay alguna forma de cambiar el destino del delegado para que ejecute el método en el objeto de la página actual?

He pensado en usar un método de página estática, pero luego no tengo acceso a los controles en la página que derrota el objeto de lo que estoy tratando de hacer, que es actualizar un cuadro de texto.

¿Fue útil?

Solución

Haga que su delegado tome la nueva página como su primer parámetro, y cuando la llame, pase this .

Otros consejos

Estoy un poco nervioso por esto. Las sugerencias de Jon Skeet y Mehrdad funcionarán (por supuesto), pero se supone que las instancias de la página deben eliminarse después de que se complete una solicitud. Este delegado podría evitar que eso suceda, lo que lleva al equivalente .Net de una pérdida de memoria.

Quizás podría usar la reflexión y poner un objeto System.Reflection.MethodBase o System.Reflection.MethodInfo en la sesión para invocar más tarde.

delegateInstance.Method.Invoke(obj, arguments);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top