デリゲート(ページメソッドを指す)をセッション状態で保存する場合、ポストバック後にそれを取得して実行すると、デリゲートのターゲットは現在のオブジェクトではなく古いページオブジェクトになりますが、とにかくターゲットを変更することはできますか現在のページオブジェクトでメソッドを実行するようにデリゲートしますか?
静的ページメソッドを使用することを考えましたが、テキストボックスを更新するという、実行しようとしているオブジェクトを無効にするページ上のコントロールにアクセスできません。
デリゲート(ページメソッドを指す)をセッション状態で保存する場合、ポストバック後にそれを取得して実行すると、デリゲートのターゲットは現在のオブジェクトではなく古いページオブジェクトになりますが、とにかくターゲットを変更することはできますか現在のページオブジェクトでメソッドを実行するようにデリゲートしますか?
静的ページメソッドを使用することを考えましたが、テキストボックスを更新するという、実行しようとしているオブジェクトを無効にするページ上のコントロールにアクセスできません。
私はこれについて少し緊張しています。Jon Skeet と Mehrdad の両方の提案は (もちろん) 機能しますが、ページ インスタンスは要求が完了した後に破棄されることになっています。このデリゲートは、メモリ リークに相当する .Net につながる、それが発生するのを防いでいる可能性があります。
おそらく、リフレクションを使用して、System.Reflection.MethodBase
またはSystem.Reflection.MethodInfo
オブジェクトをセッションに配置して、代わりに後で呼び出すことができます。
delegateInstance.Method.Invoke(obj, arguments);
デリゲートが新しいページを最初のパラメーターとして受け取り、それを呼び出すときに pass を取得するようにしますthis
。