0

当我在会话状态中存储一个委托(指向页面方法)时,在回发后检索它并执行它,委托的目标是旧页面对象而不是当前页面对象,无论如何要更改目标委托,以便它在当前页面对象上执行该方法?

我曾考虑过使用静态页面方法,但是我无法访问页面上的控件,这会破坏我正在尝试做的对象,即更新文本框。

4

3 回答 3

6

我对此有点紧张。Jon Skeet 和 Mehrdad 的建议都会起作用(当然),但是页面实例应该在请求完成后被释放。这个委托可能会阻止这种情况的发生,导致 .Net 相当于内存泄漏。

也许您可以使用反射并在会话中放置一个System.Reflection.MethodBaseSystem.Reflection.MethodInfo对象以便稍后调用。

于 2009-08-03T16:33:35.913 回答
3
delegateInstance.Method.Invoke(obj, arguments);
于 2009-08-03T16:27:51.633 回答
1

让您的委托将新页面作为其第一个参数,并在您调用它时通过this

于 2009-08-03T16:28:55.717 回答