SilverlightがWindows Phoneでサポートするものをよく理解し、 サポートされていない型とメンバーに関する情報をより詳しく知ることをお勧めします。
コントロール
サポートされているコントロールのリストを表示するには、 別の記事をご覧ください 。
メディア
この場合も、 携帯電話のメディアのソースを参照することをお勧めします。
ディープズーム
Silverlight for Windows Phoneは、可能であれば常にMultiScaleImageのハードウェアアクセラレーションを使用します。 その結果、 CacheModeプロパティへの変更は無視されます。
代表者
非同期デリゲート、特にBeginInvokeおよびEndInvokeメソッドは、.NET Compact Frameworkではサポートされていません。 デリゲートを非同期で呼び出そうとすると、アプリケーションはNotSupportedExceptionではなくTargetInvocationExceptionをスローします。
ファイナライザー
管理制限区域 (CER)は、Silverlight for Windows Phoneではサポートされていません。
フォント
利用可能なすべてのフォントにはROMが付属しています。 Silverlightにはフォントはインストールされていません。 VerdanaやSegoeなどのWebセーフフォントが推奨されます。 Visual Studio 2010 Express for Windows Phone CTPには、Windows Phone 7シリーズでサポートされているフォントを表示するフィルターが含まれています。 デバイス上に存在しないフォントを使用する場合は、アプリケーションで提供することをお勧めします。 TrueTypeフォントも推奨されます。 埋め込みフォントは、マネージコードでランタイムをサポートするための埋め込みリソースとしてDLLまたはXAPに追加する必要があります。
グラフィックス
グラフィック、アニメーション、およびぼかしやドロップシャドウなどの効果がサポートされています。 Silverlight for Windows Phoneのすべてのエフェクトはハードウェアアクセラレーションを使用できるため、 UIElementのCacheModeをBitmapCacheに設定する必要があります。
ネイティブピクセルシェーダーはサポートされていないため、 PixelShaderもサポートされていません。 より詳細なグラフィックとアニメーション情報 。
宿泊施設
Windows Phone上のすべてのSilverlightアプリケーションはクライアントデバイスに保存され、ブラウザー内で実行されません 。 ブラウザー内の配置に基づくSilverlightのすべての機能は使用できません。 これには、HTML DOMブリッジ、JavaScriptを使用する機能、およびオブジェクトプラグインへのリンクが含まれます
入る
コントロールは、指でタッチ、押し、「運転」などのさまざまなジェスチャーをサポートします。 マウスイベントを使用して、タップ、ダブルタップ、タップ、ホールドの簡単な動作を処理できます。
- タッチ用のMouseLeftButtonUp
- ダブルクリックを処理するには、一定時間( TimeSpan )に2回押したかどうかを確認します。 MouseMoveイベントがクリックとクリックの間に発生しなかった場合、ダブルクリックが発生します
- 長押しを処理するには、 MouseLeftButtonDownイベントでTimeSpanを開始し、タッチ座標を保存します。 MouseMoveイベントで 、ユーザーのタッチが数ピクセルシフトしたかどうかを確認します。 シフトした場合、タイマーをキャンセルします。 タイマーが期限切れになる前にMouseLeftButtonUpイベントが発生した場合は、タイマーもキャンセルします。 キャンセルする前にタイマーが切れた場合、クランプが発生しています。
制御イベントを使用して、ユーザー入力に応答することもできます。 コントロールイベントはマルチタッチ入力をサポートし、 UIElementオブジェクトの移動とスケーリングに使用できます。 さらに、 「方法:操作イベントを処理する」も参照してください。
分離ストレージ
分離ストレージにより、アプリケーションは仮想ファイルシステムにデータを格納できます。 データは他のシステムコンポーネントから完全に隔離されます。 これにより、データを保存する別のアプリケーションのコンポーネントによる不正アクセスとデータ破損を防ぎます。
Windows Phoneのサンドボックスストレージは、Silverlightアプリケーションの追加のストレージクォータクォータを提供しません。
Windows Phoneのアプリケーションのサイズは、最大2 GBに達する可能性があります。
プラットフォーム実装の違いは次のとおりです。
- Windows Phoneの分離ストレージにはサイトの概念が含まれていないため、 GetUserStoreForSiteはサポートされていません。
- IncreaseQuotaToは例外をスローします
- IsolatedStorageFileStreamクラスのコンストラクターは、プラットフォームの制限により、 FileShare.DeleteおよびFileShare.Inheritableプロパティをサポートしません
- アプリケーションのデフォルトの最大クォータサイズはMAXLONGです
関連する記事で分離ストレージの詳細を読むことができます: 分離ストレージとSystem.IO.IsolatedStorage
LINQ
ネイティブデータソースのLINQプロバイダーは、Silverlight for Windows Phoneではサポートされていません。
ローカリゼーション
ローカライズをサポートする一部のタイプとメンバーは、多少異なる動作をします。
- 独自のカルチャは、カスタムの書式設定が必要な場合に標準の書式設定を返します。 たとえば、08/31/2006 12:30:15 PMは8/31/06 12:30:15 PMとして返されます。
- フォーマットおよび解析時にニュートラルカルチャを使用できないため、ストリームの現在のカルチャとしてニュートラルカルチャを設定できません。
- DateTimeFormatInfo.GetEraは、fr-FRカルチャに対して-1を返します
- DateTimeFormatInfo.GetEraNameメソッドは、場合によっては誤った値を返します。 予想されるADの代わりに、DCストリングの同じfr-FRローカリゼーション
- DateTime.ToStringは、 ロシアの日付に対して誤った文字列を返します。 たとえば、2000年6月15日ではなく、2000年6月15日を取得します。
- Double.ToString()は、独自の形式を使用する場合、数値のグループ間のカンマ区切り文字を含む有効な文字列を返しません。
多感覚および制御イベント
マルチテンソルと操作イベントを操作するために、Windows PhoneのSilverlightは、Silverlight 3にはないタイプ、メンバー、およびイベントをサポートします。詳細については、「 方法:操作イベントを処理する」を参照してください。
ナビゲーション
Windows Phone上のSilverlightは、Windows以外のページナビゲーションモデルを提供します。 フレームクラスとページクラスはサポートされていません。詳細については、トピックフレームとページナビゲーションを参照してください。
ネットワーク
ネットワークサポートには、Windows Communication Foundation(WCF)、 HttpWebRequest、およびWebClientが含まれます 。
ネイティブ接続とソケットはサポートされていません。 ChannelFactory(TChannel)はサポートされておらず、委任状を動的に生成できないためです。 コンパイル時に委任状を生成するには、コンソールでslsvcutil.exeを使用する必要があります。
Visual Studioの[サービス参照の追加]オプションは、コンパイル時に有効にできるプロキシも生成します。 このオプションは、Community Technology PreviewバージョンのWindows Phoneプロジェクトでは使用できません。
XmlSerializerFormatAttributeクラスのStyleプロパティはサポートされていません。
これはサポートされていない機能のすべてではありません。詳細についてはこちらに記載されています 。
性能
デバイスは、デスクトップコンピューターよりもプロセッサー能力、ストレージ、およびメモリーが少なくなります。 また、バッテリー寿命も限られています。 特にアニメーションとメディアを使用するアプリケーションでは、これらの事実に基づいてアプリケーションを設計する必要があります。 一部のデバイスは、複数のStoryboardオブジェクトを使用する場合、または多数のXAML要素を操作する場合に速度が低下する可能性があります。
複雑な変換を適用しながらXAMLコードを最適化するために、Windows PhoneのSilverlightはCompositeTransformをサポートします。
反射
リフレクションの実装は、デスクトップの実装とは異なります。
- 一部のタイプとメンバーはサポートされていません。リストはWindows Phoneのクラスライブラリサポートにあります。
- オープンジェネリック型はサポートされていません。
- GetTypeメソッドのignoreCaseパラメーターはサポートされていません。 大文字と小文字を区別する型名を使用する必要があります。
- Silverlight 3と.NET Compact Frameworkのバインダー実装には、動作と機能の違いがあります。
- 等価演算子(==)は、2つのMethodInfoオブジェクトに対してtrueを返しません。
- System.Reflection.Emit名前空間はサポートされていません
- GetNestedTypesは 、 BindingFlagsの値に関係なく、すべてのネストされた型を返します。
- AssemblyName.GetPublicKeyTokenは、バイト[0] PKTまたはPublicKeyToken = nullを含むアセンブリの名前に対して、バイト[0]の代わりにnullを返します。
- declaringTypeパラメーターの場合、 MethodBase.GetMethodFromHandle(MethodHandle、TypeHandle)はRuntimeTypeHandleの代わりにRuntimeMethodHandleを使用します。
- WaitHandle.WaitAllは、.NET Compact Frameworkではサポートされていません。
- AssemblyName()。ToString()およびAssembly.FullNameは、標準コンストラクターを使用してAssemblyNameオブジェクトを初期化するときにSystem.Reflection.AssemblyNameを返します。
- ParameterInfo.DefaultValueはnullを返します
- Type.GetMemberメソッドは 、名前が正規表現で指定されている場合、指定された名前のパブリックメンバーを返しません。
- Type.GetMethodsメソッドとType.GetMembersメソッドは、同じオブジェクトインスタンスを返しません。
- AssemblyName.FullNameは、 PublicKeyTokenのデフォルト情報を返しません。 .NET Compact Frameworkは、アセンブリ名のみを提供します。 カルチャ、バージョン、およびPKT情報を比較するには、個別の方法を使用する必要があります。
- FieldInfo.ToString()は、boolを指す場合、 Boolean []ではなくSystem.Boolean []を返します。
- Type.GetMethod(String、Type [])はSetメソッド(Int32、System.String)に対してnullのMethodInfo値を返しますが、デスクトップはMethodInfoを返しますが、これは決してnullではありません。
- Type.AssemblyQualifiedNameの戻り値はプラットフォーム間で異なります。 たとえば、Windows PhoneでのSilverlightのAssemblyQualifiedNameの戻り値は、MyType、MyAssembly、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = b17a5c561934e089のようになります。 デスクトップ上の同等: MyType、MyAssembly、バージョン= 1.0.0.0、カルチャー=ニュートラル、PublicKeyToken = B17A5C561934E089
正規表現
Silverlight for Windows Phoneでは、Regexクラスの実装はキャッシュをサポートしないため、CacheSizeプロパティは常にゼロを返します。
ランタイム
Windows Phone 7シリーズのSilverlightは、.NET Compact Frameworkで実行されます。
安全性
X509証明書との違いは、X509Certificateの作成時に間違ったフラグを渡すと、 ArgumentExceptionの代わりにNotSupportedExceptionがスローされることです。
一口
TextBoxコントロールにソフトウェア入力パネル(SIP)を使用できるようにするために、Silverlight for Windows Phoneは、Silverlight 3にはないいくつかのタイプとメンバーをサポートしています。詳細については、「 方法:TextBoxでSIPレイアウトを指定する」を参照してください。
Windows Phone用のSilverlight拡張機能 。
Silverlight for Windows Phoneの拡張機能
Windows Phoneの開発に固有の追加機能については、Windows Phoneのクラスライブラリリファレンスを再度お読みください。 この機能はすべて、Windows Phone開発者ツールに含まれています。
テキストエンコーディング
エンコーダーEncoding.Unicodeは、System.Text.UnicodeEncodingおよびUnicodeEncoderに名前が変更されました。
Decoder Encoding.Unicodeの名前がSystem.Text.UnicodeEncodingおよびUnicodeDecoderに変更されました
ストリーム
Silverlight 3とは異なり、Silverlight for Windows Phoneはアニメーションを2つの独立したストリームに分割して、デバイスのパフォーマンスを向上させます。
ThreadStaticAttributeは 、.NET Compact Frameworkでは使用されません。
URI
HttpUtilityクラスはSystem.Net名前空間にあります。 Windowsでは、このクラスはSystem.Windows.Browser名前空間にありますが 、Windows Phoneプラットフォームではサポートされていません。
Uri.LocalPathは、スラッシュ(/)をバックスラッシュ(\)に変換しません。 ファイル(ファイル://)のURIは無効であるためです。 パスは相対パスとして返されます。
URIインスタンスのOriginalStringプロパティは、URLに渡す前にスペースを切り捨てます。
ビジュアルベーシック
.NET Compact Frameworkでは、Visual BasicのLINQクエリの構文は、演算子がオプションであるSelect句をサポートしていません。 選択条件に標準クエリ結果を変更しないパラメーターが含まれていない場合、選択条件を削除する必要があります。
このリリースでは、Visual Basicはサポートされていません。
実行時のVisual Basicは、XNamespaceおよびStringオブジェクトへの参照との同等性を検証できません。
Xaml変換
複数の変換を適用するときにXAMLを最適化するために、Windows PhoneのSilverlightはCompositeTransformをサポートします。
XML
.NET Compact FrameworkはDocument Type Definition(DTD)をサポートしていないため、 解析はサポートされていません。 アプリケーションは、XMLでDTD文字列を検出するとNotSupportedExeptionをスローします。 DTDを解析するには、アプリケーションで認識エンジンを実装するか、XMLスキーマを使用する必要があります。
よく使用されるDTDは、通常XmlPreloadedResolverを介して実行されます 。 このタイプは、Silverlight 3 SDKに含まれていますが、Community Technology Previewバージョンではサポートされていません。
次の違いもあります。
- XmlQualifiedName型のXmlSerializerオブジェクトのシリアル化された出力は、完全な形式ではありません。
- .NET Compact Framewrokでは、読み取りのためにネイティブクラスでラップできます。 読み取り用に独自のクラスを作成し、必要な関数を独自に実装して、 XmlReader.Create(XmlReader、XmlReaderSettings)の入力に渡すことができます。
その他の違い
APIにはさらにいくつかの制限があります。
- GetHashCodeは、同じクラスの異なるメソッドに対して同じ値を返します。
- System.DateTime.Now.Millisecond.ToStringは、Windows Phoneエミュレーターで常にゼロを返します
- Decimal.Parseは、指数がゼロに近い場合、無効な10 進値を返します。 Windowsでは、メソッドはゼロを返します。 たとえば、値0E-50および10900E-512の場合、無効な10進値がゼロではなく返されます。
- GetHashCodeは、.NET Compact Frameworkの一部のユーザー宣言構造に対して0を返します。.NETFrameworkでは、ゼロ以外の値を返します。
例外
一部のメソッドは、プラットフォームに応じて異なる例外をスローします。
- X509Certificateの作成時に無効なフラグを渡すと、 ArgumentExceptionの代わりにNotSupportedExeptionがスローされます。
- FTPでファイルにアクセスしようとすると、アプリケーションはNotSupportedExceptionではなくNullReferenceExeptionをスローします
- サポートされていない東アジア言語を使用しようとすると、アプリケーションはTypeInitializationExceptionではなくPlatformNotSupportedExceptionをスローします
- リソースファイルからサイズ0バイトのMemoryStreamを返そうとすると、 System.ArgumentNullExceptionがスローされます。 Windowsでは、例外は表示されません。
- カスタム読み取りクラスでラップすることにより、アプリケーションはXmlReaderSettingsのConformanceLevelがAutoに設定されていることを確認する必要があります。
- アプリケーションがMemoryStream型の変数にStream.Nullを保存しようとすると、 ArrayTypeMismatchExceptionが発生する
- リフレクションを使用して静的コンストラクターを呼び出すと、アプリケーションはMethodAccessExceptionではなくArgumentExceptionをスローします。
- Type.InvokeMember継承を介して基本クラスの整数フィールドに整数値を設定しようとすると、 ArgumentExceptionではなくMissingFieldExceptionがスローされます。
- .NET Compact Frameworkは、 Dictionaryからクラスを継承すると例外をスローします。keyパラメーターは列挙です。
- 一部のコンストラクター引数の属性とプロパティ値により、 Type.GetCustomAttributesが失敗する場合があります
- 仮想関数のグループデリゲートを検索すると、.NET Compact FrameworkではNullReferenceExceptionがスローされますが、.NET FrameworkではAccessViolationExceptionが発生します
- アプリケーションが存在しない型のメソッドを呼び出そうとするか、 あいまいな方法でメソッドを呼び出そうとすると、.NET Compact FrameworkはAmbiguousMatchExceptionをスローします。
- Path.GetDirectoryName(System.String)に間違ったパスを渡すと、メソッドは例外をスローしません。 たとえば、System.IO.Path.GetDirectoryName(@ "D:\ temp \。")は、例外ではなく「D:\ temp」を返します。
- Path.GetDirectoryName(System.String)は例外をスローしません。 パスの長さがシステムで許可されている最大長より長い場合。
- 不適切なカルチャをサテライトアセンブリAssembly.GetSatelliteAssembly(System.Globalization.CultureInfo)に渡すと、メソッドはWindowsでFileLoadExceptionをスローし、Windows PhoneでFileNotFoundExceptionをスローします
- ArgumentExceptionは、 タイプ 'System.ArgumentException'の例外ではなく、 引数例外メッセージを表示します。 同様に、ArithmeticExceptionは、Windowsのような文字列をスローする代わりにArithmetic Exceptionをスローします。
- ICollection.CopyTo(System.Array、System.Int32)は、 InvalidCastExceptionではなくArgumentExceptionをスローします
- FieldInfo.GetValue(System.Object)は、最初のパラメーターとしてnullが渡されるとArgumentNullExceptionをスローします。
- FieldInfo.Value(Object)は、ToString()の代わりにstringを使用して、オブジェクトの情報フィールドの値を文字列に変換するときにInvalidCastExceptionをスローします。
- System.ServiceModel.Channels.MessageHeaders.CopyHeaderFromは、 指定された引数が有効な値の範囲外であったメッセージを表示します。 この引数の値は0〜1の範囲内でなければなりません 。
- Array.SetValue(System.Object、System.Int32)に誤った値を渡すと、メソッドはArgumentExceptionではなくInvalidCaseExceptionをスローします。
- 渡された次元が配列のサイズに等しい場合、Array.GetLowerBound(System.Int32)はIndexOutOfRangeExceptionをスローしません。 代わりに、下限の値として0を返します。
- StreamWriterコンストラクターに間違ったパスを渡すと、 DirectoryNotFoundExceptionの代わりにInvalidArgumentExceptionがスローされます。
- System.Runtime.Serialization.DataContractSerializer.ReadObjectは、プライベートコンストラクターを持つIXmlSerializable型を逆シリアル化しようとすると、 SecurityExceptionではなくMethodAccessExceptionをスローします。
- MissingMethodExceptionに対して表示されるメッセージが正しくありません。
- デリゲートを非同期で呼び出そうとすると、アプリケーションはNotSupportedExceptionではなくTargetInvocationExceptionをスローします
- System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(System.IO.Stream)は、 MethodAccessExceptionが予期されるときにSecurityExceptionをスローします。
- System.Text.RegularExpressions.MatchCollection.CopyTo(System.Array、System.Int32)に間違った値を渡すと、メソッドはArgumentExceptionではなくPlatformNotSupportedExceptionをスローします
- nullオブジェクトをCreateInstanceに渡すと、メソッドはNotSupportedExceptionではなくNullReferenceExceptionをスローします
- System.Version.CompareToに文字列を渡すと、メソッドはArgumentExceptionではなくInvalidCastExceptionをスローします。
- 無効な引数でデリゲートを作成しようとすると、Delegate.CreateDelegateはMissingMethodExceptionをスローします。 Windowsでは、このメソッドは例外をスローしませんが、nullを返します。
- ByRef型に対してMakeByRefTypeメソッドが呼び出された場合、Type.MakeByRefTypeはTypeLoadExceptionをスローしません。
- DateTime.ParseExactメソッドは不正確な時間がかかることがあり、 FormatExceptionをスローしません。同時にWindowsではFormatExceptionを取得します
- 間違ったCompareOptionsオブジェクトを渡した場合、CompareInfo.Compare()は予想されるArgumentExceptionをスローしません。
- XmlReaderは、数字のオーバーフローが発生してもクラッシュしません。 代わりに、XmlReader.Valueで空の文字列を返します。
- Message.ToString()は、Windows Phoneでは動作が異なります。 Message.ToString()は、.NET Compact FrameworkでXMLバージョン情報を表示しません。
- 間違ったハンドラーを入力に渡しても、MethodBase.GetMethodFromHandleは例外をスローしません。 nullを返すだけです。
- 空の文字列を型名として渡すと、Module.GetTypeはArgumentExceptionをスローしません。 nullを返すだけです。
- Assembly.LoadFrom(String)は、アセンブリではないロードにファイルを渡そうとするとクラッシュします。 そのため、破損した画像の読み込みを防ぐために、メタデータの検証時に特別に設計されました。
- Type.GetPropertyは、提示されたパラメータータイプにnull要素が含まれている場合、 ArgumentNullExceptionではなくNullReferenceExceptionをスローします。
- Assembly.GetTypeは、文字列値がnullの場合、 System.ArgumentExceptionではなくSystem.TypeLoadExceptionをスローします。
- Type.GetConstructor(BindingFlags、Binder、Type []、ParameterModifier [])は、ParameterModifiersまたはnullが指定されていない場合、 ArgumentNullExceptionをスローします。
- 入力がスペースで始まる場合、Path.GetRootPathは空の文字列を返します。
- 最初のパラメーターにnullを渡すと、FieldInfo.SetValue()はTargetExceptionではなくArgumentNullExceptionをスローします。
- 最初のパラメーターにnullを渡すと、 EventInfo.AddEventHandlerはTargetExceptionではなくArgumentNullExceptionをスローします。
- EventInfo.AddEventHandlerは、イベントにパブリック追加アクセサーがない場合、 InvalidOperationExceptionではなくArgumentNullExceptionをスローします。
- 場合によっては、MethodBase.InvokeはTargetExceptionをスローしませんが、予期しない例外をスローする場合があります。
- 誤ったパラメーターをType.GetType(typeName、throwOnError)に渡すと、メソッドはArgumentExceptionではなく予期しない例外をスローします。
- 無効な値をPropertyInfo.GetValueに渡すと、メソッドはTargetExceptionではなくArgumentNullExceptionをスローします。
- インデクサーの数が実際の数より少ない場合、PropertyInfo.GetValueはTargetParameterCountExceptionではなくArgumentExceptionをスローします。
- assemblyFileパラメーターが有効なアセンブリでない場合、Assembly.LoadFrom(String)はBadImageFormatExceptionではなくSystem.IO.IOExceptionをスローします 。
- パブリック定数フィールドにFieldInfo.SetValue()を使用すると、メソッドはFieldAccessExceptionの代わりにSystem.MemberAccessExceptionをスローします。
- コンストラクターが宣言されていない型の場合、System.Activator.CreateInstance(Type、object [])はMissingMethodExceptionの代わりにMemberAccessExceptionをスローします。
- 無効なパラメーターをModule.ResolveMethodに渡すと、メソッドはArgumentOutofRangeExceptionではなくArgumentExceptionをスローします。
- Type.GetMethodsは、実行時に使用できないタイプがメソッドの1つに含まれている場合、InvalidProgramExceptionをスローします。
- 無効な文字列をAssembly.Load()に渡すと、 ArgumentExceptionではなくSystem.IO.IOExceptionがスローされます。
- 引数名にワイルドカード文字が含まれる場合、 Type.InvokeMemberはMissingFieldExceptionをスローします。
- ConstructorInfo.Invokeは、 引数の数が一致しない場合、 TargetParameterCountExceptionではなくArgumentExceptionをスローします。
- AssemblyName(文字列)コンストラクタに無効な文字列を渡すと、 IOExceptionではなくFileLoadExceptionがスローされます。
- Assembly.GetType(文字列名)に無効な名前を渡すと、メソッドはArgumentExceptionをスローしませんが、nullを返します。
- CultureInfo( "fr")。NumberFormat.CurrencySymbolを "USD"に設定すると、 NotSupportedExceptionが発生します。
- Decimal.Parse(String形式、intスタイル)は、Windowsで0の無限値を返し、Windows PhoneではOverlowExceptionを受け取ります。
- Decimal.Parse(String、NumberStyles)は、サポートされている値よりも大きな値が渡されるとOverflowExceptionをスローします。 この場合も、Windowsで例外は発生しません。
- パブリックジェネリック型がサポートされていないため、Dictionary <TKey、TValue>から継承した型を含む内部型をシリアル化しようとすると、DCS.WriteObject()がクラッシュします。
- XmlException.LineNumberおよびXmlException.LinePositionの値は、XmlExceptionに正しく返されません。
- MethodInfoオブジェクトのReturnParameterプロパティを使用して型を取得すると、NotSupportedExceptionが発生します。
- System.String.IndexOfAnyに誤ったパラメーターを渡すと、メソッドはArgumentNullExceptionではなくArgumentOutOfRangeExceptionをスローします
- CultureInfo(文字列)コンストラクターは、サポートされていないカルチャに対してArgumentExceptionではなくPlatformNotSupportedExceptionをスローします。