派生恼人的ASP.NET类

时间:2011-03-09 15:46:02

标签: c# asp.net web-controls

我想从System.Web.UI.WebControls.WebControl派生一个新类,但是我认为当你派生一个类时,你不会继承它的构造函数。

这导致的困难是这个类的一个构造函数有一个System.Web.UI.HtmlTextWriterTag类型的参数,它定义了创建的控件/元素的html标记,并且没有办法在类之后设置它已经构建/初始化。

有没有人对如何解决这个问题有任何建议?

4 个答案:

答案 0 :(得分:4)

这应该有所帮助: A Crash Course on ASP.NET Control Development: Deriving New Controls from Existing Classes

只需遵循此速成课程,您就会看到它有多简单。

答案 1 :(得分:3)

喜欢这个吗?

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

    }               
}

答案 2 :(得分:1)

您需要将相同的构造函数添加到您自己的类型中。然后使用:base(...)来调用基础构造函数。

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

只要:base(...)的签名与基本类型构造函数的签名匹配,您也可以在类型和基类型之间使用非匹配签名。但是您只能使用表达式来定义传递给它的参数的值。所以你可能想要使用一些静态辅助方法。

答案 3 :(得分:0)

派生基类时,也会派生基类构造函数。您可以将HtmlTextWriter类型传递给派生类ctr,并在派生类中将ctr定义为DervCtr(HtmlTextWriter) : base(HtmlTextWriter)