博客
关于我
强烈建议你试试无所不能的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中time模块
查看>>
JavaWeb学习笔记(3)
查看>>
StreamAPI 小练习
查看>>
进程关系之作业控制
查看>>
项目经理的磨练(2) 科学的安排项目日程安排
查看>>
mysql优化二之锁机制
查看>>
从程序员到项目经理(14):项目经理必须懂一点“章法”【转载】
查看>>
JDBC批量插入优化addbatch
查看>>
复现一篇深度强化学习论文之前请先看了这篇文章!
查看>>
git 命令使用常见问题
查看>>
android加固系列—6.仿爱加密等第三方加固平台之动态加载dex防止apk被反编译
查看>>
Linux命令----ls
查看>>
WebRTC网关服务器单端口方案实现
查看>>
表达式的前后缀表达形式
查看>>
HTTP协议
查看>>
Django 学生信息 添加 功能 遇到的问题.
查看>>
Merge Sorted Array Leetcode Java and C++
查看>>