移植可能なサブセット プロジェクトを使用すると、.NET アセンブリ プログラマは、複数の .NET 実装 (デスクトップ、Silverlight、Windows Phone、Xbox) をサポートしながら、単一のソース ツリーとビルド システムを維持できます。 ポータブル サブセット プロジェクトは、任意の .NET 実装で使用できる .NET アセンブリであるポータブル ライブラリのみを参照します。
サービス参照の追加の詳細
移植可能なサブセット プロジェクトにサービス参照を追加する場合は、次の制限が適用されます。
XmlSerializerの場合、リテラル エンコーディングのみが許可されます。 SOAP エンコードでは、インポート中にエラーが生成されます。
DataContractSerializerシナリオを使用するサービスの場合、再利用される型が移植可能なサブセットからのみ取得されるように、データ コントラクト サロゲートが提供されます。
ポータブル ライブラリでサポートされていないバインドに依存するエンドポイント ( BasicHttpBindingを除くすべてのバインド、トランザクション フローのない WSHttpBinding 、信頼できるセッション、または MTOM エンコード、および同等のカスタム バインド) は無視されます。
メッセージ ヘッダーは、インポート前にすべての操作のすべてのメッセージの説明から削除されます。
移植不可能な属性 DesignerCategoryAttribute、 SerializableAttribute、および TransactionFlowAttribute は、生成されたクライアント プロキシ コードから削除されます。
移植不可能なプロパティ ProtectionLevel、SessionMode、IsInitiating、IsTerminating は、 ServiceContractAttribute、 OperationContractAttribute、および FaultContractAttributeから削除されます。
すべてのサービス操作は、クライアント プロキシに対する非同期操作として生成されます。
移植不可能な型を使用する生成されたクライアント コンストラクターは削除されます。
CookieContainer インスタンスは、生成されたクライアントで公開されます。
コード ジェネレーターのアセンブリとバージョンを識別するコメントがファイルの先頭に挿入されます。
// This code was auto-generated by Microsoft.VisualStudio.Portable.AddServiceReference, version 1.0.0.0
ISerializable インターフェイスはサポートされていません。
Net.Tcp および PollingDuplex バインドはサポートされていません
DataContractSerializerは常に障害に使用されます。
IsWrapped は、ポータブル サブセット プロジェクトではサポートされていません。