2013-10-14 109 views
0

我有我們的合作伙伴使用的這個遺留代碼,這是一箇舊的web服務。我需要通過向外部WebAPI添加調用來集成一些新功能。當我嘗試它說以下從WebService調用WebAPI?

類型或命名空間名稱「的HttpClient」不中 命名空間中的web服務的CS文件創建HttpClient的「System.Net.Http」(是缺少程序組裝參考?)

我錯過了在Web服務中創建HttpClient的實例。我在我的cs文件中添加了對System.Net.Http的引用。

更新:這是我的解決方法。我創建了一個新的3.5項目,添加了來自舊項目的文件,將其轉換爲4.5,並添加了對System.Net.Http的引用,現在一切都很順利。

+0

什麼是您的.cs文件中的代碼? –

+0

@NicholasKing - web服務中的代碼是從數據庫中獲取一些數據。我必須進行更改,以便從外部WebAPI獲取一些數據,並在返回顯示之前將其與數據庫中的數據合併。 –

+0

顯示足夠的代碼來重現問題! –

回答

0

System.Net.Http庫僅在.NET 4.5中提供 - 您正在運行哪個版本?

或者,您可以使用HttpRequest,它可以在所有版本中使用。

+0

我已經將解決​​方案升級到4。5 –

+0

@SubratoM實際上是否已將「System.Net.Http」的引用添加到您的項目中?這是一個單獨的DLL ... – James

+0

是的,我做到了。我還添加了對System.Net.Http.Formatting的引用。 –

0

對我來說好像是the HttpClient Class wass added in .Net 4.5。您的舊網絡服務可能運行舊版本的.Net。您可能想嘗試升級服務,並儘可能將其更改爲.Net 4.5。

更新:好的,所以你有一個.net 4.5項目。你是否證實你已經添加了正確的參考?

請注意,包含對System.Net的引用與向System.Net.Http中添加一個不同。後者下找到「擴展」在Visual Studio(而不是根據框架,其中前者被發現)添加引用時。

更新2:嘗試刪除現有引用System.Net.Http,並添加以下NuGet包代替:

Install-Package Microsoft.Net.Http 

(參考:http://www.nuget.org/packages/System.Net.Httphttp://www.nuget.org/packages/Microsoft.Net.Http

+0

是的,我已經將項目從3.5版轉換爲4.5 –

+0

@SubratoM好吧,那麼如果你正確地包含了對它的引用,你應該找到這個庫。查看我的更新。 – Kjartan

+0

是的,我確實從擴展名中將它添加到了項目中。 (其實我是通過管理NuGet擴展並添加了Microsoft ASP.NET Web API客戶端庫來實現的,我還安裝了Microsoft .NET Framework 4 HTTP Client Libraries)。 –

0

確保您引用System.Net.Http.dll在.NET 4.5中。

嘗試通過右鍵單擊解決方案資源管理器中的項目來手動添加引用,然後在出現對話框時單擊添加引用,選擇最左側的選項卡滾動列表直到看到名爲System.Net.Http的項目,然後雙擊並重建。

並確保您的項目的目標是.NET 4.5