我正在为单元测试创建假HttpContext
,并且还想设置UserAgent
属性。
我尝试了下面的代码,但它没有说平台不受支持。
var httpRequest = new HttpRequest(null, "http:xyz.com", null);
httpRequest.Headers["UserAgent"] = "unitTest";
var stringWriter = new StringWriter();
var httpResponce = new HttpResponse(stringWriter);
HttpContext context = new HttpContext(httpRequest, httpResponce);
任何帮助?
答案 0 :(得分:1)
正如您在参考来源中看到的那样,UserAgent
是从HttpWorkerRequest
中提取的。更改它的唯一方法是使用反射调用this constructor of HttpRequest
以传递工作者请求:
internal HttpRequest(HttpWorkerRequest wr, HttpContext context)
正如我正在进一步调查的那样,它似乎从一些远离IIS
类或使用Server variable ALL_RAW
使用ISAPI时检索属性。
我开始认为这可能会成为一个可怕的事情被嘲笑。你可能有更多的运气自己覆盖abstract class HttpWorkerRequest
,但它可能成为实施的噩梦。