在类库文件里如何获取context对象

1.一般情况下,我们利用HttpContext.Current对象可以获取到需要的对象,例如:Request,Response,Server等

HttpContext context=HttpContext.Current;这样即可获取到context对象

Page current = HttpContext.Current.CurrentHandler as Page;这样就能获取到page对象

Request,Response,Server对象都可通过context对象获取。

来是因为Page继承了IHttpHandler接口,同理:包括ashx等之类实现了IHttpHandler接口的都可以用这种方式取到对应的对象。

 

2.异步请求时,要在异步之前获取到context对象
因为HttpContext.Current是基于System.Runtime.Remoting.Messaging.CallContext这个类,子线程和异步线程都无法访问到主线程在CallContext中保存的数据。

所以要在异步之前获取到context对象,我是用一个静态变量把HttpContext.Current存起来的,这样在异步的程序里都可以访问到context对象。也不会发生异常。

 

这是我遇到这个问题时解决的方法,如果有好的意见一起学习!!!

posted @ 2010-11-18 17:55  传说敬  阅读(627)  评论(0编辑  收藏  举报