Page(Context)オブジェクトを動的継承?

さてさてASP.NETのお話です:razz:

ASP.NETで開発をしていると良くUI.Pageを継承したクラスを作成しますが、
継承はご存知のとおり多重にはできない。

しかも、Controls.Add追加するなど共通なロジックを入れたい場合はDLL(コンパイル)にしないといけない・・・

できれば簡単にaspxファイルなどにインプリメント系のテキストに記述したソースで、
ProcessのContextをもらえないかな?

と考えたとき・・・・強引?にありました。

Page_Loadなどイベントゲットできる、実行中のthis.Contextを与えてくれる機能が・・・

自身のクラスには「Inherits System.Web.UI.Page」してから

Public Sub New()
  '以前のトレース状態を保存
  Dim blnTrace As Boolean
  blnTrace = Current.Trace.IsEnabled
 
  'IDをセットしトレースをOffでProcessにセット
  Me.ID = "_" & _strTitle
  Me.Trace.IsEnabled = False
  Me.ProcessRequest(Current)
 
  'OldTrace情報を再セット
  Current.Trace.IsEnabled = blnTrace
End Sub

見事にPage_Load(イベント)やRequest(プロパティ)などのリソースを使用できます!

内部動作はと考えると・・・・

Pageを再度呼んでそうで一寸はロスしてそう:roll:

ま、Traceしてみて問題なさそうだからしばらく遊んでみよう!

コメントは受け付けていません。