Asp.net 3.5控件和组件开发技术系列—从零开始开发服务器控件(下)
is); } 该语句主要完成把默认从WebControl继承来的一些样式属性赋值给主控件(在第7章讲控件样式 时还会专门分析ControlStyle对象),这些属性如图3-3所示。 图3-3 从WebControl继承来的默认样式属性 从图3-3中可以看出,这么多属性如果都要我们在Render方法中自己实现是比较麻烦的。 好了,上面说了在基类中有这么多好的可重用的方法,但我们禁用了base.Render方法,那应该 如何实现重用基类方法呢?实现起来也非常简单,直接在 Render方法中调用相关的基方法即可, 比如,如果想使用我们重载的TagKey作为主控件的HTML标记,则可以用如下调用方式:
另外,如果不想使用基类的TagKey功能,仅希望把基类中继承的默认属性让系统自动追加到主 控件,作为主控件的属性,则可以用如下调用方式:
另外,以上这些代码功能不仅可以在Render方法中实现,还可以在我们想要的其他方法中实现 。前提是要非常了解基类方法中做了什么事情。 3.8.11 条件编译&条件属性 在实际开发中,经常需要根据不同运行环境下生成相应的机器代码。最愚蠢的办法是根据不同 的环境注释掉相应的语句,或者取消对需要的语句的注释,这样每换一次环境就必须修改代码。为 了解决这个问题,.NET Framework提供了一些支持:条件编译和条件属性。 1.#if/#else/#endif 条件编译 条件编译语句关键字为:#if#else,#endif。下面直接通过一个例子说明其用法:
以上代码意思是如果.NET Framework至少是2.0以上版本,才会打开WebParts命名空间,因为在 .NET Framework 1.0还不支持WebParts控件。在条件编译代码语句中的符号&&(并且)和 ||(或者)跟普通C#代码语句中的&&和||符号含义相同。再强调一下,以上的条件编译符 号的作用是指在编译时是否会编译语句中的语句,而不是运行时。 上面的条件符号NET35和NET20是我们自己定义的一些字符串,注意在命名时不要随便定义无意 义的条件符号。那么编译系统怎么肯定会了解我们定义的这些 NET35,NET20条件符号呢?下面就 说明条件符号是怎么通知编译器的,右击控件库项目,选择"属性"命令,会打开项目属性配置窗口 ,选择左边的"生成"选项卡,会看到在"常规"下面有一项就是让我们设置条件编译符号的,如图3 -4所示。 图3-4 设置条件编译符号 如果您使用的是VS 2008就设置NET35;如果使用的是VS 2005,就设置NET20即可,并且此项设 置支持使用分号隔开,能写多个符号。还要注意对于系统自己使用的一些关键字如DEBUG等,就不 能使用了(即使设置了,系统也不会 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |