• 项目总结(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:上面的代码是用文本写的,可能会有笔误,并没有进行调试

  • 相关阅读:
    HTML5中的FileSystem API的一个问题(或者是BUG)
    TSQL入门(二)——创建表
    javascript绘制谢尔宾斯基三角形(Sierpinski triangle)
    VS2010操作SQL SERVER CE 4.0数据库
    TSQL入门(三)——增删改(INSERT、DELETE、UPDATE)
    IE6警告框
    TSQL入门(二)——创建表
    TSQL入门(一)——创建数据库
    TSQL入门(一)——创建数据库
    javascript绘制谢尔宾斯基三角形(Sierpinski triangle)
  • 原文地址:https://www.cnblogs.com/kwklover/p/35597.html
Copyright © 2020-2023  润新知