Xamarinでsocketsが使えない

投稿者: Anonymous

AndroidとiOSアプリを作成しようと
Visual Studio 2015とXamarin4.1でアプリを作り始めたのですが・・・
とりあえず通信だけでも実装しようと
Cross-Platformアプリの中から、blank app(Xamarin.Froms Portable)と言うプロジェクトテンプレートをベースにソリューションを一つ作りました

その中に移植可能、Android、iOSやユニバーサルアプリのプロジェクトが作成され
今まで.Netで使用していたTCPの自分用のライブラリのソースコードをコピーしてきたのですが・・・
移植可能なプロジェクトでは
using System.Net.Sockets;
が使用不可能なnamespaceになってしまいます

Android,iOSではusing System.Net.Sockets;が使用可能となっているのですが、
移植可能なプロジェクトでは使用できません
また、クロスプラットフォームなライブラリのプロジェクトを作成しても、そのプロジェクト内では
using System.Net
まではあるようなのですがやはりSocketsは存在しません

https://developer.xamarin.com/api/namespace/System.Net.Sockets/
こちらのページにはapiとして掲載されているので、
使えるはずではあるようなのですが・・
参照はデフォルトのままです(新たな参照しようとすると、全ての参照可能なFrameworkアセンブリは既に参照されているとなります)

従来のアプリを移植したいだけなのでTCP関連では、Socketsクラスを使用したいのですが
この様な場合はどうやって使用できるようにすれば良いのでしょう

解決

System.Net.Sockets 系のクラスは PCL(Portable Class Library) では使用できないですね。

PCL で使用される .NET Framework は、対応する全てのプラットフォームで動作できる機能のみのサブセットなので、このように通常は使用できるがPCLでは使用できないクラスが多々あります。

PCL で Sokect が使用できるライブラリがあるようなので、利用されてはいかがでしょうか。

従来のアプリを移植したいだけなのでTCP関連では、Socketsクラスを使用したい

の回答としては、 iOS や Android プロジェクト側にそのコードを書くしかない、となります。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *