Zor*_*goZ 4 c# asp.net-web-api2
这段代码:
Request.CreateResponse(HttpStatusCode.PartialContent);
Run Code Online (Sandbox Code Playgroud)
产生以下编译错误:
错误 CS0121 调用在以下方法或属性之间不明确:“System.Net.Http.HttpRequestMessageExtensions.CreateResponse(System.Net.Http.HttpRequestMessage, System.Net.HttpStatusCode)”和“System.Web.Http.HttpRequestMessageCommonExtensions.CreateResponse” (System.Net.Http.HttpRequestMessage, System.Net.HttpStatusCode)'
两者都在System.Net.Http命名空间中,一个在System.Web.Http程序集中,另一个在,System.Net.Http.Formatting但我需要它们都作为参考。System.Net.Http.HttpRequestMessageExtensions两个程序集中都存在更糟糕的类。
作为一种解决方法,我可以使用这个重载,它似乎只出现在其中一个中:
Request.CreateResponse<object>(HttpStatusCode.PartialContent, null);
Run Code Online (Sandbox Code Playgroud)
但是有没有其他方法可以解决冲突呢?
[重现步骤]
System.Net.HttpSystem.Net.Http.Formattingfrom NuGet的引用using System.Net.Httpvar req = new HttpRequestMessage();req.CreateResponse(HttpStatusCode.OK);一般来说,您可以直接使用扩展方法来解决此类歧义:
代替
myRequest.CreateResponse(HttpStatusCode.PartialContent);
Run Code Online (Sandbox Code Playgroud)
用
HttpRequestMessageExtensions.CreateResponse(myRequest, HttpStatusCode.PartialContent);
Run Code Online (Sandbox Code Playgroud)
在这种特定情况下,我无法按照您的指示重现该问题。但是,我下载了Microsoft.AspNet.WebApi.Client Nuget而不是System.Net.Http.Formatting Nuget,因为后者被标记为已弃用。也许尝试更新到较新的 Nuget?
更新:我可以在安装System.Web.Http.Common Nuget并添加using System.Web.Http;到文件时重现该问题。使用对上述方法的显式调用可解决此问题。