加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在vb.net Webapi项目中缺少request.CreateResponse

发布时间:2020-12-16 03:45:07 所属栏目:asp.Net 来源:网络整理
导读:我似乎已经找到了问题,但不知道如何修复它,或者我是否可以. 当我创建一个新的C#WebAPI项目,并为System.Net.Http添加导入时,我可以访问 Request.CreateResponse TGT ;. 当我创建一个新的VB.Net WebAPI项目,并为System.Net.Http添加一个导入时,我所有的是Reque
我似乎已经找到了问题,但不知道如何修复它,或者我是否可以.

当我创建一个新的C#WebAPI项目,并为System.Net.Http添加导入时,我可以访问
Request.CreateResponse< T&GT ;.

当我创建一个新的VB.Net WebAPI项目,并为System.Net.Http添加一个导入时,我所有的是Request.createODataErrorResponse.

然而,无论如何,我可以忽略intellisense并访问CreateResponse.似乎VB只是没有正确解释各种扩展.

我想修复intellisense,但实际上并不需要它.

谢谢!

史蒂夫

更新
我在2012年8月找到了这个forum post的回答,解释说它已被复制,但似乎还没有修复.

我是新来的,应该关闭吗?

解决方法

有一个解决方法

我提出了以下解决方案:

>创建调用原始CreateResponse方法的扩展方法CreateResponse2
>在您的控制器中,调用新的自定义方法(Request.CreateResponse2(…))

以下是我的解决方案:

创建一个新模块HttpRequestMessageExtensions

Imports System.Net
 Imports System.Net.Http
 Imports System.Web
 Imports System.Runtime.CompilerServices
 Imports System.Web.Http

 Public Module HttpRequestMessageExtensions

     <Extension()> _
     Public Function CreateResponse2(Of T)(ByVal request As HttpRequestMessage,statusCode As HttpStatusCode,value As T) As HttpResponseMessage
         Return request.CreateResponse(Of T)(statusCode,value)
     End Function

     <Extension()> _
     Public Function CreateResponse2(Of T)(ByVal request As HttpRequestMessage,value As T,Configuration As HttpConfiguration) As HttpResponseMessage
         Return request.CreateResponse(Of T)(statusCode,value,Configuration)
     End Function

     <Extension()> _
     Public Function CreateResponse2(Of T)(ByVal request As HttpRequestMessage,mediaType As String) As HttpResponseMessage
         Return request.CreateResponse(Of T)(statusCode,mediaType)
     End Function

     <Extension()> _
     Public Function CreateResponse2(Of T)(ByVal request As HttpRequestMessage,formatter As Formatting.MediaTypeFormatter) As HttpResponseMessage
         Return request.CreateResponse(Of T)(statusCode,formatter)
     End Function

     <Extension()> _
     Public Function CreateResponse2(Of T)(ByVal request As HttpRequestMessage,mediaType As Headers.MediaTypeHeaderValue) As HttpResponseMessage
         Return request.CreateResponse(Of T)(statusCode,formatter As Formatting.MediaTypeFormatter,formatter,mediaType)
     End Function

 End Module

控制器中的用法:

Return Request.CreateResponse2(Of SomeClass)(HttpStatusCode.BadRequest,objSomeClass)

截图:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读