我试图了解System.Web.HttpRequest的PathInfo属性及其设置方式。
为什么在下面的示例中为空?
var p = new System.Web.HttpRequest("file.txt","http://file.com/files/file.txt","");
//PathInfo is always empty
return string.IsNullOrEmpty(p.PathInfo)
我试图通过调用Elmah.ErrorLogPageFactory :: ProcessRequest(HttpContext context)通过Nancyfx通过Elmah接口进行管道传递。
但它不起作用,因为Elmah.ErrorLogPageFactory依赖HttpRequest :: PathInfo来解析正确的IHttpHandler,并且PathInfo始终为空。
如果有人花时间解释PathInfo的工作原理,我将不胜感激!
最佳答案
PathInfo
属性是基于HttpContext
类的HttpRequest
私有变量计算的。没有官方方法来设置此HttpContext
实例。这就是为什么每次手动创建HttpRequest
时HttpContext
始终为null,因此PathInfo
也使用空的原因。
若要获得与空字符串不同的内容,您需要使用由.NET框架为您创建的真实实例,而不是自己实例化它。