2016-07-21 11 views
1

私は最近、C#からREST APIを呼び出す作業を開始しました。私の研究から、それを行う最善の方法はSystem.Net.Httpの一部であるHttpClientを使うことだと思われます。Distributing System.Net.Http

このライブラリを入手するには、デフォルトで.NET 4.5の一部ではないため、NuGetからダウンロードしてインストールする必要があることを知りました。

これは、HttpClient(必要なアセンブリが4つあるように見える)に必要なアセンブリをすべて取得し、HttpClientを使用するプロジェクトでそれらを手動で配布する必要があることを意味しています。

Microsoftの標準.NETアセンブリのように見えるのは奇妙なことです。

+0

依存関係を持つライブラリについては、珍しいことは何もありません。 –

+1

「近年では、NuGetを.NET Frameworkのリリースビークルとして使用して、より迅速に機能と修正をリリースしました。」https://blogs.msdn.microsoft.com/dotnet/p/nugetpackages/ それは本当にすべてのアプリケーションで必要とされないパッケージのためにやっているということです。これは自己完結型のデスクトップアプリケーションに適しています。 – zzbomb

+0

@WilliamXifarasはい、わかりました。標準の.NETインストールの一部であるようなライブラリの場合には、それは私には奇妙に思えました。 – James

答えて

2

HttpClientには、.NET 4.5以降が付属しています(バージョン情報hereを参照)。 NuGetのolder platforms.NET Core(これは最新バージョンで、.NET Standard 1.1に準拠しているほとんどの.NET実装とも互換性があります)でも利用できます。

.NET 4.5を使用している場合、そのパッケージへの参照を追加するだけです(参照>追加>アセンブリ>フレームワーク>System.Net.Http)。

+0

System.Net.HttpをHttpClientに追加したことを.NET 4.5プロジェクトに読み込んだ後、私が試した最初のことでしたが、そこにはありませんでした。もしそれがあったとしても、NuGetを使って追加することには悩まされませんでした。 HttpClientは4.5より前の.NETバージョンでも動作しますか? HttpClientはタスクを使用します。メソッド(GET、PUT、POST、DELETE)はすべてTasksを返し、「待つ」ことができます。 .NET 4.5の待機と非同期機能はありませんか? – James

+0

いいえ、タスクは.NET 4.で追加されました。待たされていた機能はC#5と.NET 4.5に付属しましたが、NuGetパッケージ 'Microsoft.Bcl.Async'を使用して.NET 4で動作するように作られました。 –

+0

「System.Net.Http」は間違いなくそこにあります...間違ったフレームワークバージョンをターゲットにしているのでしょうか? –