【发布时间】:2013-05-16 05:44:46
【问题描述】:
我有一个方法可以创建一个包含错误对象的 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
如果不可能,如何实现上述方法,以便知道应该为当前请求使用哪个格式化程序?
【问题讨论】:
-
为什么不将
HttpRequestMessage传递给您的XmlMediaTypeFormatter?如果您说您的格式化程序在另一个库中,最好不要将它强链接到您的应用程序。 -
谢谢,我没有使用任何自定义格式化程序。我希望我可以避免传递控制器请求属性。
-
我终于通过了请求,因为没有更好的解决方案。
标签: c# asp.net-mvc asp.net-web-api asp.net-mvc-routing