Pergunta

Quando eu guardo um delegado (que aponta para um método de página) no estado da sessão, recupere -o após um postback e executá -lo, o alvo do delegado é o objeto antigo da página e não o atual, existe de qualquer maneira para alterar o alvo do alvo do Delegado para que ele execute o método no objeto da página atual?

Pensei em usar um método de página estática, mas não tenho acesso aos controles na página que derrota o objeto do que estou tentando fazer, que é atualizar uma caixa de texto.

Foi útil?

Solução

Faça seu delegado pegar a nova página como seu primeiro parâmetro, e quando você o chama de passar this.

Outras dicas

Estou um pouco nervoso com isso. As sugestões de Jon Skeet e Mehrdad funcionarão (é claro), mas as instâncias da página devem ser descartadas após a conclusão de uma solicitação. Esse delegado pode estar impedindo que isso aconteça, levando ao .NET equivalente a um vazamento de memória.

Talvez você possa usar reflexão e colocar um System.Reflection.MethodBase ou System.Reflection.MethodInfo Objeto na sessão para invocar mais tarde.

delegateInstance.Method.Invoke(obj, arguments);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top