さてさて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してみて問題なさそうだからしばらく遊んでみよう!