博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
[pytorch学习]1.pytorch ubuntu安装
查看>>
阿里云CentOS 安装配置ASPNET Core
查看>>
repeater 分页显示数据
查看>>
HDU-3666 THE MATRIX PROBLEM
查看>>
鼠标悬停放大图片 - 漂亮
查看>>
【转载】博士后了
查看>>
IDEA操作git的一些常用技巧
查看>>
Java多线程基础(一)
查看>>
TCP粘包拆包问题
查看>>
Java中Runnable和Thread的区别
查看>>
SQL Server中利用正则表达式替换字符串
查看>>
POJ 1015 Jury Compromise(双塔dp)
查看>>
UIScrollView,UICollectionView 和UITableView的属性和方法
查看>>
JavaScript-10(JavaScript事件)
查看>>
网络编程 -- RPC实现原理 -- NIO单线程
查看>>
Java Annotation 应用 -- 导出Excel表格
查看>>
JavaScript 动态显示当前时间
查看>>
常用的 Http ContentType 对照表
查看>>
DVD系统
查看>>
5.11题解 导弹拦截
查看>>