public static HttpWorkerRequest GetWorkerRequestViaReflection(HttpRequestBase request) { const BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic; // In Mono, the field has a different name. var wrField = request.GetType().GetField("_wr", bindingFlags) ?? request.GetType().GetField("worker_request", bindingFlags); if (wrField == null) return null; return (HttpWorkerRequest)wrField.GetValue(request); }
RequestContext SafeGetContext (HttpRequestBase req) { if (req == null || req.GetType () != httpRequestBaseType) return null; return req.RequestContext; }
public HttpRequest GetHttpRequestFromHttpResponseBase(HttpRequestBase request) { FieldInfo fieldInfo = request.GetType().GetField("_httpRequest", BindingFlags.NonPublic | BindingFlags.Instance); if (null != fieldInfo) { return fieldInfo.GetValue(request) as HttpRequest; } return null; }