当我在会话状态下存储委托(指向页面方法)时,在回发后执行它并执行它,委托的目标是旧页面对象而不是当前目标,无论如何都要更改委托的目标,以便它在当前页面对象上执行方法?
我已经考虑过使用静态页面方法但是我无法访问页面上的控件,这些控件会破坏我想要做的对象,即更新文本框。
答案 0 :(得分:6)
我对此有点紧张。 Jon Skeet和Mehrdad的建议都会起作用(当然),但页面实例应该在请求完成后处理。这个代理可能会阻止这种情况发生,导致.Net相当于内存泄漏。
也许您可以使用反射并在会话中放置System.Reflection.MethodBase
或System.Reflection.MethodInfo
对象以便稍后调用。
答案 1 :(得分:3)
delegateInstance.Method.Invoke(obj, arguments);
答案 2 :(得分:1)
让您的代理人将新页面作为其第一个参数,当您调用它时,请传递this
。