Live in O2, live in software!

众生均生活在O2之中, 我也不例外, 你也是这样的.
posts - 5, comments - 28, trackbacks - 1, articles - 5
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

      很多人在群里问起,如何在类库中的类文件里使用Response,Request,Server,Session几种对象。我这里有如下方式,仅供参考:
      首先我们要在类文件里引用using System.Web;using System.Web.SesstionState;命名空间,然后是对这种对象的声明:
       HttpSessionState Session;
       HttpServerUtility Server;
       HttpRequest Request;
       HttpResponse Response;

最后我们可以在构造函数里做如下处理:
      try
      {
            Session = ((System.Web.UI.Page)parent).Session;
            Server = ((System.Web.UI.Page)parent).Server;
            Request = ((System.Web.UI.Page)parent).Request;
            Response = ((System.Web.UI.Page)parent).Response;
      }
      catch
      {
            Server = ((System.Web.UI.UserControl)parent).Server;
            Session = ((System.Web.UI.UserControl)parent).Session;
            Request = ((System.Web.UI.UserControl)parent).Request;
            Response = ((System.Web.UI.UserControl)parent).Response;
      }
以上做完,你就可以在类库里直接使用这几种对象了。

Feedback

#1楼  回复 引用 查看   

2005-12-08 17:37 by Mr_DJ      
我经常这么做来控制Session的分配和释放,不过我一般都是用Static的方法,然后传当前的HttpSession或者HttpResponse等作为参数进函数的.
比如申明:
public static AddToCart(HttpSession session,string name) {
session["MyCart"] ...;
}
不知道这样和你的方法有什么区别?

#2楼[楼主]  回复 引用 查看   

2005-12-14 12:19 by 木目木      
应该是差不多的,然,我这里提供的方法是可以做用于整体类文件夹的,你的这个是用于单个方法中的,或许差别在此。

#3楼  回复 引用   

2006-05-25 22:58 by deer[未注册用户]
敢问楼主:既然session等等可以直接从page属性继承而来,为什么还要加上catch{}中的内容能,或者说什么样的情况下session等等是必须从catch{}中的System.Web.UI.UserControl 继承呢??

#4楼[楼主]  回复 引用 查看   

2006-05-26 07:50 by 木目木      
当你在使用Web自定义控件时使用catch中的内容,为了页面更安全、更正常的的执行我才如些做的。

#5楼  回复 引用   

2008-04-24 11:15 by 惠翔云[未注册用户]
我按照你说的方法做了,可是还是不行呀!!

郁闷呀!不是不能在类里使用SERVER.MAPPATH()

#6楼  回复 引用 查看   

2010-05-31 22:43 by 淡忘      
找了一些日子了,但是找不到Parent方法,我在aspx。cs页面下跟踪需要的导入的命名空间也找不到,能告知下??