權(quán)限管理設(shè)計中 增加了BasePage,然后各個頁面public partial class LanEmail_EmailView : BasePage繼承BasePage如何在Basepage中判斷是哪個頁面繼承了它然后向它注冊權(quán)限相應信息?
2 回答

慕標5832272
TA貢獻1966條經(jīng)驗 獲得超4個贊
你這樣設(shè)計是不對的,父類是不應該“預計”到子類的存在的
如何在Basepage中判斷是哪個頁面繼承了它然后向它注冊權(quán)限相應信息
那么事實上就是子類的注冊權(quán)限信息是不同的,你想把這些都歸并到父類的一個方法里去。正確的做法是父類應該有一個PrepareAccessInfo的虛方法:
protected virtual void PrepareAccessInfo() { //一些通用的實現(xiàn) }
然后每個子類如果有獨特的邏輯,就override這個方法,如果沒有獨特的邏輯,就可以不做任何事情而使用父類中的通用邏輯。這個方法你可以在適當?shù)牡胤秸{(diào)用,比如page init的時候。

梵蒂岡之花
TA貢獻1900條經(jīng)驗 獲得超5個贊
你可以使用幾種方式,一是使用事件,在基類中定義一個事件,然后在不同的頁面登記該事件,在該事件中處理你想注冊的信息,這樣不同的子類就可以有不同的注冊信息了。
第二的中你可以參考下設(shè)計模式中的模板模式;
第三種方式就是結(jié)合一二中方式,在PageBase中定義一個抽象或者虛方法functionA,在load事件中調(diào)用functionA方法,不同的子類實現(xiàn)或者重寫functionA
- 2 回答
- 0 關(guān)注
- 576 瀏覽
添加回答
舉報
0/150
提交
取消