質問: 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は存在しません こちらのページにはapiとして掲載されているので、 使えるはずではあるようなのですが・・ 参照はデフォルトのままです(新たな参照しようとすると、全ての参照可能なFrameworkアセンブリは既に参照されているとなります) 従来のアプリを移植したいだけなのでTCP関連では、Socketsクラスを使用したいのですが この様な場合はどうやって使用できるようにすれば良いのでしょう
回答: `System.Net.Sockets` 系のクラスは PCL(Portable Class Library) では使用できないですね。 PCL で使用される .NET Framework は、対応する全てのプラットフォームで動作できる機能のみのサブセットなので、このように通常は使用できるがPCLでは使用できないクラスが多々あります。 PCL で Sokect が使用できるライブラリがあるようなので、利用されてはいかがでしょうか。 * NuGet Gallery | Sockets Plugin for Xamarin and Windows (PCL) > > 従来のアプリを移植したいだけなのでTCP関連では、Socketsクラスを使用したい > > > の回答としては、 iOS や Android プロジェクト側にそのコードを書くしかない、となります。