2016-08-16 10 views
3

私は最近Mac用のxamarin studioをダウンロードしてインストールしました。私は完全な初心者なので、xamarinでC#コーディングのチュートリアルを開始しました。彼らはHttpClientを使用できるよう、チュートリアルの間に、彼らは彼らのプロジェクトに xamarinのHttpClientがありません

System.Net.Http

を使ってHttpClientをを使用して

を追加します。私は同じことを行うことができなかっただけ。これは、PCLプロジェクトだったSystem.Net.NetworkInformation

を使用して

のオプションを持っていました。私はまた、キャッシュ、メール、ソケット、WebSocket、セキュリティなどを含むより多くのオプションを与えた共有ライブラリプロジェクトを試しました。

私は何かが間違っているか何かをしていますか?

答えて

1

これはPCLのすべてです。それだけでは、最も基本的な.NET機能だけが含まれています。ビジネスロジックとアプリケーションフローをPCLに書き込むことはできますが、プラットフォームに依存するため、ハードウェアと何らかの形で相互作用するほとんどのライブラリを参照することはできません。

この問題には、2つの主要な解決策があります。

  • 依存性注入:PCLは、インターフェイスを定義し、ご使用のプラットフォーム固有のアセンブリは、このインタフェースの実装を提供 - この実装は、すべて参照することができますが、プラットフォームで利用可能なライブラリ

  • おとり商法:あなたはすべての非サポート例外を投げると、これらの方法の適切な実装を持っている各プラットフォームで同じシグネチャと別々のライブラリが含まれていることを、あなたが必要とするすべてのメソッドとPCLを作成します。コンパイラには、特定のプラットフォームのライブラリのみが含まれます。私は個人的にこれを少しトリックだと考えていますが、これはほとんどのNuGetパッケージが "PCLとして"直接利用できる機能を提供する方法です。

0

HttpClientクラスにアクセスするための追加パッケージは必要ありません。私はすべてのプロジェクトですでに2年近く使っています。 例:

行くために::Edit References => Packages => Check System.Net.Http私が提案する何

enter image description here

。それはそこにあるはずです。

あなたがそこにそれを見つけることができない場合、またはリストPackagesの下に空である(バグのいくつかの種類)を、ここから手動でそれを参照:/Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5-api

+0

ハム...私はちょうどそれがためにモノにされています実現しましたしばらく。 https://forums.xamarin.com/discussion/7719/using-httpclientを参照してください。Microsoft.Net.Httpを使用する必要がある場所を覚えていない –

関連する問題