博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web基础类(继承System.Web.UI.Page)的问题解决方案~
阅读量:5298 次
发布时间:2019-06-14

本文共 1072 字,大约阅读时间需要 3 分钟。

相信很多人在写项目的时候会构建一个继承于System.Web.UI.Page的类,将很多的公用部分代码放入其中,如权限检测、出错处理(方便嘛teeth_smile.gif)等,但是在构建这样一个类的时候有一个问题是需要特别注意71_71.gif,就是类的属性定义,我们来看下面这个属性<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

None.gif
public
 Hashtable EffectSecurityChecker
None.gif
ExpandedBlockStart.gifContractedBlock.gif                   
dot.gif
{
InBlock.gif
InBlock.gif                            
set
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                            
dot.gif{
InBlock.gif
InBlock.gif                                     Application[“aa”] 
= value;
InBlock.gif
ExpandedSubBlockEnd.gif                            }
InBlock.gif
InBlock.gif                            
get
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                            
dot.gif{
InBlock.gif
InBlock.gif                                     
if ( Application[“aa”] == null)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                                     
dot.gif{
InBlock.gif
InBlock.gif                                               Application[“aa”] 
= new Hashtable();
InBlock.gif
ExpandedSubBlockEnd.gif                                     }
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif                                     
try
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                                     
dot.gif{
InBlock.gif
InBlock.gif                                               
return (Hashtable)Application[“aa”];
InBlock.gif
ExpandedSubBlockEnd.gif                                     }
InBlock.gif
InBlock.gif                                     
catch
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                                     
dot.gif{
InBlock.gif
InBlock.gif                                               Application[“aa”] 
= new Hashtable();
InBlock.gif
InBlock.gif                                               
return (Hashtable)Application[“aa”];
InBlock.gif
ExpandedSubBlockEnd.gif                                     }
InBlock.gif
ExpandedSubBlockEnd.gif                            }
InBlock.gif
ExpandedBlockEnd.gif                   }
None.gif
None.gif 
None.gif

乍一看好像没什么问题,连出错处理都做好了,而且编译也可以成功通过。但其忽略了一点,这个基础页面类是一个界面类,什么问题?界面类被继承后其属性会被子类初始化,当我们的子类继承了这个类后它自己的

web
编辑界面就再也打不开了(郁闷吧
~confused_smile.gif
),所以这里如果要用到类似的功能可以这样修改

None.gif
private
 Hashtable _EffectSecurityChecker 
=
 
null
;
None.gif
None.gif
public
 Hashtable GetEffectChecker()
None.gif
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
{
InBlock.gif
InBlock.gif         
if ( Application[“aa”] == null)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                   
dot.gif{
InBlock.gif
InBlock.gif                            Application[“aa”] 
= new Hashtable();
InBlock.gif
ExpandedSubBlockEnd.gif                   }
InBlock.gif
InBlock.gif                   
try
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                   
dot.gif{
InBlock.gif
InBlock.gif                            
return (Hashtable)Application[“aa”];
InBlock.gif
ExpandedSubBlockEnd.gif                   }
InBlock.gif
InBlock.gif                   
catch
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif                   
dot.gif{
InBlock.gif
InBlock.gif                            Application[“aa”] 
= new Hashtable();
InBlock.gif
InBlock.gif                            
return (Hashtable)Application[“aa”];
InBlock.gif
ExpandedSubBlockEnd.gif                   }
InBlock.gif
ExpandedBlockEnd.gif}
None.gif
None.gif

所有子类通过GetEffectChecker()方法来进行调用,因为方法不影响界面初始化,所以子类的web界面依然可以正常编辑thumbs_up.gif

 

有一点需要强调一下,第一种做法不会影响程序的运行regular_smile.gif

转载于:https://www.cnblogs.com/minbear/archive/2004/08/02/29343.html

你可能感兴趣的文章
Python数据分析入门案例
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
#ifndef #define #endif
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
正则表达式
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
Chapter 3 Phenomenon——12
查看>>
C语言中求最大最小值的库函数
查看>>
和小哥哥一起刷洛谷(1)
查看>>
jquery对id中含有特殊字符的转义处理
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>