0

I have a vb.net class library project targeting .net 4.5.1 framework. I am using Visual Studio 2013 community edition.

The project is a library consuming a webapi 2 REST API.

As a guide I am using this example.

Project's packages.config is the following:

<?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> 

Project's assemblies references are:

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 file is:

<?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>

The problem is that System.Net.Http.HttpClient extensions defined in Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll aren't loaded so functions like

System.Net.Http.HttpClientExtensions.PostAsJsonAsync(Of T)

and

System.Net.Http.HttpClientExtensions.PostAsXmlAsync(Of T)

aren't available.

In Object Browser System.Net.Http.HttpClientExtensions class defined in System.Net.Http.Formatting assembly under the System.Net.Http namespace are grayed out as you can see in the following screenshot:

screenshot

I found several related questions like this one but the provided answers and suggestions in comments didn't work for me.

I tried several other recommendations from various internet sources, like for example replacing the reference of System.Net.Http.Formatting.dll found in Microsoft.AspNet.WebApi.Client package with the one found in the extensions assemblies area but didn't work either.

Now I am stuck and I don't know how to solve this. Any help will be highly appreciated.

EDIT

It appears that the grayed out classes in the object browser are just hidden classes (meaning they cannot be used directly in user's code) and have nothing to do with the problem described.

Community
  • 1
  • 1
ChD Computers
  • 3,135
  • 3
  • 23
  • 33
  • Any luck with this? I'm having the exact same issue deploying to an Azure Cloud Service. System.Net.Http.Formatting is looking for Newtonsoft.Json 6.0.0.0 even though i have the redirectBinding in my config file as added by NuGet. Seems to have happened after i updated Microsft.AspNet.WebApi.Client package – Ian Schmitz Jul 22 '15 at 23:27
  • @IanSchmitz Unfortunately I found nothing. I gave up trying and start using RestSharp which is awesome! site [here](http://restsharp.org/) nuget [here](https://www.nuget.org/packages/RestSharp) – ChD Computers Jul 23 '15 at 19:07

0 Answers0