gpt4 book ai didi

c# - 如何全局访问当前的HttpRequestMessage对象?

转载 作者:IT王子 更新时间:2023-10-29 03:59:50 24 4
gpt4 key购买 nike

我有一个创建包含错误对象的 HttpResponseMessage 的方法,该对象将根据当前请求媒体类型格式化程序返回。

目前,我已经对 XmlMediaTypeFormatter 进行了硬编码,但我希望能够在运行时找到当前请求 MediaTypeFormatter,但我无权访问当前请求对象,因为我的以下代码存在于单独的类库中。

private HttpResponseMessage Create(HttpStatusCode statusCode, string errorCode, string errorMessage)
{
var result = new HttpResponseMessage(statusCode)
{
Content = new ObjectContent<Error>(new Error()
{
Code = errorCode,
Message = errorMessage
}, new XmlMediaTypeFormatter())
};
return result;
}

如何全局访问当前的HttpRequestMessage对象?类似于 HttpContext.Current.Request

如果不可能,如何实现上述方法,使其知道当前请求应该使用哪个格式化程序?

最佳答案

这并非不可能,因为我最近才发现。它实际上被添加到当前 HttpContext 的 Items 属性中(如果有的话)=[

HttpRequestMessage httpRequestMessage = HttpContext.Current.Items["MS_HttpRequestMessage"] as HttpRequestMessage

编辑:

这是从 WebAPI v2 开始的。我不能确定以前的版本。

关于c# - 如何全局访问当前的HttpRequestMessage对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com