如何在ASP.NET 5中使用HttpRequestMessage.CreateResponse <HttpError>()

Cal*_*aNN 7 c# asp.net asp.net-web-api asp.net-core

我有空的Web API项目以及使用VS2015创建的完整MVC项目.我注意到HttpRequestMessageSystem.Net.Http,那很好,但不是为CreateResponse以下:

此代码来自我的异常记录器中间件,它也从先前的Web API 2返回格式化的json.

var resp = request.CreateResponse<HttpError>(HttpStatusCode.InternalServerError, new HttpError("Internal Server Error. Reference: " + guid), config);
Run Code Online (Sandbox Code Playgroud)

我很努力找出CreateResponse扩展方法,在理应获得System.Net.Http.HttpRequestMessageExtensions以及HttpError类.两者都是先前的 Microsoft.AspNet.WebApi.Core包装.

在查看ASP.NET 5代码之后,我相信它只适用于Microsoft.AspNet.Mvc.WebApiCompatShim.但是它不包含在MVC示例项目中.

问题:

什么是WebApiCompatShim包,我可以在项目中安全地使用它吗?

什么是正确的方式CreateResponseHttpRequestMessage

更新

这WebApiCompatShimWebSite表明WebApiCompatShim

获取Web API 2.*喜欢的行为

所以似乎只是出于兼容性目的.我必须重组代码.现在我发现MVC没有任何消息处理程序功能,似乎自定义中间件是要走的路.

Sha*_*Haw 5

如果添加 NuGet Package Microsoft.AspNet.WebApi.Core,您将获得您正在寻找的扩展。

参考: https: //www.nuget.org/packages/microsoft.aspnet.webapi.core/