我有一个针对.net 4.5.1框架的vb.net类库项目。我正在使用Visual Studio 2013社区版。
该项目是一个使用webapi 2 REST API的库。
作为指南我正在使用this example。
Project的packages.config如下:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net451" />
</packages>
项目的程序集引用是:
Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL
System
System.Data
System.Net.Http
System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
<HintPath>..\..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
System.Xml
System.Core
System.Xml.Linq
System.Data.DataSetExtensions
app.config文件是:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
</configuration>
问题是Microsoft.AspNet.WebApi.Client.5.2.3 \ lib \ net45 \ System.Net.Http.Formatting.dll中定义的System.Net.Http.HttpClient扩展未加载,因此函数如< / p>
System.Net.Http.HttpClientExtensions.PostAsJsonAsync(Of T)
和
System.Net.Http.HttpClientExtensions.PostAsXmlAsync(Of T)
不可用。
在对象浏览器中,在System.Net.Http命名空间下的System.Net.Http.Formatting程序集中定义的System.Net.Http.HttpClientExtensions类将显示为灰色,如下面的屏幕截图所示:
我发现了几个相关问题,例如this one,但评论中提供的答案和建议对我不起作用。
我尝试了来自各种互联网资源的其他一些建议,比如替换在Microsoft.AspNet.WebApi.Client包中找到的System.Net.Http.Formatting.dll的引用,其中包含扩展程序集区域中找到的引用但是没有不管怎样。
现在我被困住了,我不知道如何解决这个问题。任何帮助将受到高度赞赏。
修改
对象浏览器中的灰色类似乎只是隐藏类(意味着它们不能直接在用户代码中使用),并且与所描述的问题无关。