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

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

posted @ 2004-08-22 11:35  kwklover  阅读(1601)  评论(1编辑  收藏  举报