У меня есть несколько элементов управления, которые наследуют BaseUserControl. BaseUserControl наследует System.Web.UI.UserControl.
Я хочу, чтобы переопределить OnLoad
событие, как это:Добавить метод OnLoad для usercontrol
public partial class MyControl1 : BaseUserControl
{
protected override void OnLoad(EventArgs e)
{
this.Value = myCustomService.GetBoolValue();
///More code here...
base.OnLoad(e);
}
}
Это прекрасно работает, единственная проблема в том, что я должен скопировать этот кусок кода через 3 управления, которые мне не нравятся. (Я не имею доступа к базовому классу, так как она наследуется 100м управление.)
Итак, мой результат в настоящее время выглядит следующим образом:
public partial class MyControl2 : BaseUserControl
{
protected override void OnLoad(EventArgs e)
{
this.Value = myCustomService.GetBoolValue();
///More code here...
base.OnLoad(e);
}
}
public partial class MyControl3 : BaseUserControl
{
protected override void OnLoad(EventArgs e)
{
this.Value = myCustomService.GetBoolValue();
///More code here...
base.OnLoad(e);
}
}
Какие хорошие способы, чтобы реорганизовать это? Одним из способов является извлечение
this.Value = myCustomService.GetBoolValue();
///More code here...
в отдельный метод, но мне было интересно, если есть способ, который позволит нам указать событие переопределения только один раз?
почему бы не создать средний класс SetBoolValueOnLoadContorl: BaseControl и после этого использование MyControl1: SetBoolValueOnLoadContorl, MyControl2: SetBoolValueOnLoadContorl,. ..? – Frank59