设计可编辑asp.net网络控件的验证
由于Asp.Net的验证控件(脱节、冗长、笨拙)让我很恼火,我决定看看是否可以创建一系列输入控件,每个控件都有自己的验证方法和属性 我的设计标准之一是允许我的验证属性在VS intellisense中显示为标记属性以及控件的其余属性 我的第一个想法是创建一个基类,该基类继承自WebControl并实现新的属性和方法,但没有多个iheritance,这意味着无法从TextBox派生 这似乎也意味着设计可编辑asp.net网络控件的验证,asp.net,validation,inheritance,web-controls,Asp.net,Validation,Inheritance,Web Controls,由于Asp.Net的验证控件(脱节、冗长、笨拙)让我很恼火,我决定看看是否可以创建一系列输入控件,每个控件都有自己的验证方法和属性 我的设计标准之一是允许我的验证属性在VS intellisense中显示为标记属性以及控件的其余属性 我的第一个想法是创建一个基类,该基类继承自WebControl并实现新的属性和方法,但没有多个iheritance,这意味着无法从TextBox派生 这似乎也意味着 从每个WebControl(文本框、下拉列表等)继承和(重新)编码每个控件类的公共验证属性和方法(
- 从每个WebControl(文本框、下拉列表等)继承和(重新)编码每个控件类的公共验证属性和方法(有或没有看似浪费的接口),或
- 对基类(比如ValidateInputControl)进行一次编码,并在继承自ValidateInputControl的类中找到实现单个WebControl(textbox等)的方法。我怀疑这意味着渲染等,或者
- 找到其他更有效的模式/设计
所以,我在寻找建议 为什么愚蠢的问题总是在几个小时后看起来更愚蠢 对任何感兴趣的人来说,休息一下,吃顿饭,就不难弄清楚了。。多态性101和一些.Net魔法 使用希望所有派生控件继承的成员创建一个具体类(MyBaseClass)。从CompositeControl类继承此基类 现在创建要从MyBaseClass继承的单个控件(myTextBox、myDropDown等)-这些单独的控件类现在是MyBaseClass和CompositeControl类型 因此,在每个单独的控件类(比如MyTextBox)中,您现在可以实例化相应的本机控件(TextBox)并像任何复合控件一样对其进行管理,但它也可以访问MyBaseClass成员 嗯。。。总的来说,一切如常,只是复合控制