我有以下頁面如何在實現者的方法之前執行基類的方法?
public partial class GenericOfflineCommentary : OfflineFactsheetBase
{
}
其中OfflineFactsheetBase
被定義爲
public class OfflineFactsheetBase : System.Web.UI.Page
{
public OfflineFactsheetBase()
{
this.Load += new EventHandler(this.Page_Load);
this.PreInit += new EventHandler(this.Page_PreInit);
}
protected void Page_PreInit(object sender, EventArgs e)
{
if (Request.QueryString["data"] != null)
{
this.PageData = StringCompressor.DecompressString(Request.QueryString["data"]);
this.ExtractPageData();
}
}
}
OfflineFactsheetBase
具有以下virtual
方法:
public virtual void ExtractPageData()
{
// get stuff relevant to all pages that impmement OfflineFactsheetBase
}
這是在impmement OfflineFactsheetBase所有頁面實施如下:
public partial class GenericOfflineCommentary : OfflineFactsheetBase
{
public override void ExtractPageData()
{
// get stuff relevant to an OfflineCommentary page.
}
}
目前,只有GenericOfflineCommentary
的ExtractPageData()正在觸發。我怎樣才能修改這首先運行OfflineFactsheetBase
的ExtractPageData()然後GenericOfflineCommentary
的?
編輯:我試圖避免必須在每個實現者中調用base.ExtractPageData()
。這可能嗎?
但這意味着我必須在每個實現者的ExtractPageData()中包含該行,不是嗎?編輯問題以反映這一點。 – DaveDev 2010-05-12 11:54:51
我想我明白你的意思了,不知道如何在上面編輯的註釋中添加超鏈接以指向模板模式的示例 – 2010-05-12 12:14:48