项目总结(1)--集中处理上下文

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

我们一般在接收传递过来的整数参数的时候,通常可以这样做

int questionID = Convert.ToInt32(Request["QuestionID"]) 或者

int questionID = Convert.ToInt32(HttpContext.Current.Request["QuestionID"])

传递字符也大致相识,通常参数都会比较多,这样我们就必须重复做

转换参数的工作,如果我们实现一个自己的上下文,集中处理这些参数,

这样会更好一些,而且还可以对参数进行集中的验证处理,下面简单实现一个

自定义的上下文

public?class?TestContext

{

????int?questionID?=?-1?;

????public?int?QuestionID

????
{

????????get?
{?return?questionID?;?}

????}

????

????public?static?int?GetIntFromQueryString(string?key)

????
{

????????string?returnValue?=?-1?;

????????string?queryStringValue?=?String.Empty??;

????????queryStringValue?=?HttpContext.Current.Request.QueryString[key]?;

????????try

????????
{?

????????????//这里可以写一些对该参数的验证代码,比如是否是整数等等

????????}

????????catch?
{}

????????return?returnValue?;

????}?

???

????public?TestContext

????
{?

????????questionID?=?GetIntFromQueryString("QuestionID")?;

????}

????//实现current静态属性

????public?static?TestContext?current

????
{

????????get

????????
{?

?????????????if?(HttpContext.Current?==?null)

??????????????????return?new?TestContext()?;

?????????????

?????????????return?(TestContext)HttpContext.Current.Items["TestContext"];

????????}

????}

}

如果我们需要获取questionID,这样就可以了

int questionID = TestContext.Curent.QuestionID

另外,这个Context类,不只可以对QueryString,还可以对所有属于上下文的post

Session等,进行集中处理

其实集中处理上下文,还有一个好处,就是可以对整个开发团队的参数命名

进行规范化

ps:上面的代码是用文本写的,可能会有笔误,并没有进行调试

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航