Я определил 3 пользовательских элемента управления следующим образом:
public partial abstract class MyAbstractControl : Usercontrol{
// Base class definition here, with common property and methods
public string CommonAttribute {get; set;}
}
public partial class MyConcreteControl1 : MyAbstractControl{
// Some specific stuff here
}
public partial class MyConcreteControl2 : MyAbstractControl{
// Other specific but different stuff here
}
Затем я определил другой UserControl, у которого есть свойство базового класса:
public partial class MyBeautifulControl : UserControl{
[PersistenceMode(PersistenceMode.InnerProperty)]
public MyAbstractControl ChildElement{get;set;}
}
В файле aspx я использую этот элемент управления, но я бы хотел определить экземпляр MyConcreteControl1 вместо MyAbstractControl
Но если я напишу:
<MyBeautifulControl runat="server" id="beautiful">
<ChildElement commonAttribute="value" />
</MyBeautifulControl>
ChildElement может быть определен только как экземпляр MyAbstractControl . Я хотел бы создать MyConcreteControl1 или MyConcreteControl2 экземпляр, в зависимости от контекста, и я не знаю, как.