根据微软的应用洞察力网站实现HttpContextExtensions.GetRequest,检查HttpContext
中的HttpRequest
是否为空并不是(总是?)可能的:
//在应用程序获取请求状态之前,HttpRequest在HttpContext中不可用
//但是没有办法检查它;仅捕获HttpException
为什么会这样?
public static HttpRequest GetRequest(this HttpContext context)
{
// HttpRequest is not available in HttContext till Application_AquireRequestState
// But there is no way to check it; only catch HttpException
HttpRequest result = null;
try
{
result = context.Request;
}
catch (HttpException exp)
{
WebEventSource.Log.HttpRequestNotAvailable(exp.Message, exp.StackTrace);
}
return result;
}
一个简单的合并器不是也能工作吗?
var request = HttpContext.Current?.Request;
难道我不能一起避免整个try-catch
和Exception
吗?
1条答案
按热度按时间1l5u6lss1#
coalesce
用于httpcontext
* 属性Current
用于访问HttpContext.AddError
、HttpContext.ClearError
和HttpContext.AllErrors
。使用属性AddError、AllErrors,我们可以创建自定义异常。*如果为null,则传递布尔值 *
如果为空,则传递字符串 *
您可以选中 * Context * 和 * HttpContext.Current