我有空的 Web API 项目以及使用 VS2015 创建的完整 MVC 项目。我注意到HttpRequestMessage
is in System.Net.Http
,那很好,但不适合CreateResponse
below:
这段代码来自我的异常记录器中间件,它也从以前的 Web API 2 返回格式化的 json。
var resp = request.CreateResponse<HttpError>(HttpStatusCode.InternalServerError, new HttpError("Internal Server Error. Reference: " + guid), config);
我正在努力找出CreateResponse
据说可用的扩展方法System.Net.Http.HttpRequestMessageExtensions
也HttpError
班级。两者之前都在Microsoft.AspNet.WebApi.Core
包裹。
查看 ASP.NET 5 代码后,我相信它仅适用于Microsoft.AspNet.Mvc.WebApiCompatShim https://github.com/aspnet/Mvc/tree/6.0.0-beta6/src/Microsoft.AspNet.Mvc.WebApiCompatShim。但是它不包含在 MVC 示例项目中。
问题:
What is WebApiCompatShim
包,我可以在项目中安全地使用它吗?
正确的方法是什么CreateResponse
from HttpRequestMessage
?
Update
此 WebApiCompatShim 网站 https://github.com/aspnet/Mvc/blob/6.0.0-beta8/test/WebSites/WebApiCompatShimWebSite/readme.md表明WebApiCompatShim
is
获得类似 Web API 2.* 的行为
所以似乎只是出于兼容性目的。我必须重构代码。现在我发现 MVC 没有任何消息处理程序功能,并且似乎自定义中间件是可行的方法。