派生抽象的泛型類屬性我有一個從一個抽象的泛型類,這是從System.Web.UI.Page派生派生兩班。我有一個System.Web.UI.MasterPage可能會或可能不會對我的任何兩個派生頁面類,或System.Web.UI.Page的主人。母版需要從System.Web.UI.Page
問題是泛型類有一個屬性,我需要在我的MasterPage中訪問,但我不知道任何優雅的方式來獲取它。
下面是一個例子...
內容類型:
public abstract class Fruit
{
public int ID { get; set; } //Just an identifier
}
public class Apple : Fruit { }
public class Banana : Fruit { }
頁:
public abstract class FruitPage<T> : System.Web.UI.Page where T : Fruit
{
public T MyFruit { get; set; }
}
public class ApplePage : FruitPage<Apple> { }
public class BananaPage : FruitPage<Banana> { }
站長:
public partial class FoodMaster : System.Web.UI.MasterPage
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (this.Page is FruitPage<Fruit>) //I know this is wrong
{
if ((this.Page as FruitPage<Fruit>).MyFruit.ID <= 0) //This too
{
/*
I want to get here (this.Page being an ApplePage or BananaPage).
Basically... if ID<=0 then it is a new (unsaved) "fruit",
and I need to change some MasterPage GUI accordingly.
*/
}
}
}
}
謝謝!
你放在'FoodMaster'的代碼確實屬於在FruitPage ...那麼你不會有這個問題。它在任何其他情況下都不適用。 – Crisfole
我也想過,但我可能應該提到這一點,我使用嵌套的主人。 「FoodMaster」實際上是「FoodFruitMaster」的「父母」。我想過加入'FoodMaster'的方法,並呼籲從頁面的方法,但它會冒泡通過'FoodFruitMaster'。我認爲這是sl。。 – Null