CS0433:不明确的参考System.Net.Http.HttpRequestMessageExtensions

kee*_*eda 16 c# visual-studio asp.net-web-api2 visual-studio-2015

我正在使用VS2015和Resharper进行WebAPI 2.0项目.试图使用System.Net.Http.HttpRequestMessageExtensions.GetRequestContext给我一个错误说

Error   CS0433  The type 'HttpRequestMessageExtensions' exists in both 'System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' and 'System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 
Run Code Online (Sandbox Code Playgroud)

我已经尝试编辑web.config来阅读

<compilation debug="true" targetFramework="4.5.1" batch="false" />
Run Code Online (Sandbox Code Playgroud)

另外在众多帖子中建议 - 重新启动的visual studio,清除resharper缓存,重建解决方案.

什么都没有帮助,我仍然看到这个错误.还有其他建议吗?

Jos*_* M. 2

您需要使用\xe2\x80\x9cextern 别名 \xe2\x80\x9d来管理具有相同命名空间的两个类。

\n\n

首先,在程序集的属性中定义自定义别名的名称:

\n\n

在此输入图像描述

\n\n

然后,在代码中:

\n\n
using System.Web.Mvc;\n\nnamespace WebApplication1.Controllers\n{\n    extern alias Alias1;\n    extern alias Alias2;\n\n    using namespace1 = Alias1::System.Net.Http.HttpRequestMessageExtensions;\n    using namespace2 = Alias2::System.Net.Http.HttpRequestMessageExtensions;\n\n    public class HomeController : Controller\n    {\n        public void Test()\n        {\n            // ...\n            namespace1.GetRequestContext(request);\n            //namespace2.GetRequestContext(request); // error\n\n\n        }\n
Run Code Online (Sandbox Code Playgroud)\n