2017-01-25 46 views
-1

私はXamarin.forms pclを使ってアプリケーションを作っています。プラットフォームを区別するために#defineを使用する方法はありますか(Xamarin.Forms)

私が知っていることは、 "Device.OS"を使って、私たちがpclを使うときのプラットフォームを見分けることです。

しかし、場合によっては、定義するヘッダーを使用してアーカイブする必要がありますが、解決策が見つかりません。

場合によっては、プラットフォームごとに異なる派生クラスを使用したいと考えています。この

#if __ANDROID__ 
    public class SkiaView_BG : SKCanvasView 
#else 
    public class SkiaView_BG : SKGLView 
#endif 
+0

ドキュメントを読んだことがありますか?あなたの質問が何であるか分かりません:[条件コンパイル](https://developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/part_4_-_platform_divergence_abstraction_divergent_implementation/#Conditional_Compilation) –

+0

@JonDouglas Hi Jon again、DavidS私の質問に答えました。 :) –

+0

上記のサンプルコードは私がしたいことを説明していると思います。 –

答えて

2

号等

はPCLの全体のポイントは、コードが一度コンパイルされ、正確に同じDLLは、AndroidとiOS(または任意のプラットフォームターゲティング)の両方で使用されることです。したがって、異なるプラットフォームをターゲットとするための#ifはありません。

プラットフォーム間でほとんどのコードを共有する必要があるが、上の例のようなプラットフォーム固有のコードを使用する場合は、shared projectsを調べる必要があります。

PCLを使用する必要がある場合は、これをカスタムレンダラーにする方法や、そのクラスを各プラットフォーム固有のプロジェクトに移動する方法を見つける必要があります。

+0

ありがとう!事実を知ることは良いことです。 –

関連する問題