Вывод надоедливого класса ASP.NET - PullRequest
1 голос
/ 09 марта 2011

Я хотел бы получить новый класс из System.Web.UI.WebControls.WebControl, однако я думаю, что когда вы производите класс, вы не наследуете его конструкторы.

Трудность, которую это вызывает, состоит в том, что один из конструкторов для этого класса имеет параметр типа System.Web.UI.HtmlTextWriterTag, который определяет html-тег созданного элемента управления / элемента, и нет способа установить это после того, как класс был построен / инициализируется.

Кто-нибудь получил какие-либо предложения о том, как работать через это?

Ответы [ 4 ]

4 голосов
/ 09 марта 2011

Это должно помочь: Ускоренный курс по разработке элементов управления ASP.NET: извлечение новых элементов управления из существующих классов

просто следуйте этому ускоренному курсу, и вы увидите, насколько он прост.

3 голосов
/ 09 марта 2011

Как это?

public class MyWebControl: WebControl
{
    public MyWebControl(HtmlTextWriterTag tag) : base(tag) 
    {

    }               
}
1 голос
/ 09 марта 2011

Вам нужно добавить те же конструкторы для вашего собственного типа. А затем используйте: base (...) для вызова базовых конструкторов.

public MyType(ParamClass a)
    :base(a)
{
}

Вы также можете использовать несоответствующие подписи между вашим типом и базовым типом, если подпись :base(...) совпадает с подписью конструктора базового типа. Но вы можете использовать выражения только для определения значения переданных ему параметров. Поэтому вы можете использовать некоторые статические вспомогательные методы.

0 голосов
/ 09 марта 2011

Когда вы выводите базовый класс, конструктор базового класса также будет производным.Вы можете передать тип HtmlTextWriter производному классу ctr и в производном классе определить ctr как DervCtr(HtmlTextWriter) : base(HtmlTextWriter)

...