c#代表回发

时间:2009-08-03 16:18:40

标签: c# asp.net delegates postback session-state

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

我已经考虑过使用静态页面方法但是我无法访问页面上的控件,这些控件会破坏我想要做的对象,即更新文本框。

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

delegateInstance.Method.Invoke(obj, arguments);

答案 2 :(得分:1)

让您的代理人将新页面作为其第一个参数,当您调用它时,请传递this