此代码:
Request.CreateResponse(HttpStatusCode.PartialContent);
产生以下编译错误:
错误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);
但是还有其他解决冲突的方法吗?
[复制步骤]
System.Net.Http
System.Net.Http.Formatting
的引用using System.Net.Http
var req = new HttpRequestMessage();
req.CreateResponse(HttpStatusCode.OK);
答案 0 :(得分:3)
通常,您可以直接使用扩展方法来解决此类歧义:
代替
myRequest.CreateResponse(HttpStatusCode.PartialContent);
使用
HttpRequestMessageExtensions.CreateResponse(myRequest, HttpStatusCode.PartialContent);
在这种情况下,我无法按照您的指示重现该问题。但是,我下载了Microsoft.AspNet.WebApi.Client Nuget而不是System.Net.Http.Formatting Nuget,因为后面的标记为已弃用。也许尝试更新到更新的Nuget?
更新:在安装System.Web.Http.Common Nuget并将using System.Web.Http;
添加到文件时,我可以重现此问题。使用上述对方法的显式调用可以解决此问题。