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

我们一般在接收传递过来的整数参数的时候,通常可以这样做
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:上面的代码是用文本写的,可能会有笔误,并没有进行调试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值