在类库文件里如何获取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对象。也不会发生异常。
这是我遇到这个问题时解决的方法,如果有好的意见一起学习!!!