2016-07-05 14 views
1

は私が Xamarin - 共有クラスライブラリへのアクセスSystem.IO.File

  • Macバージョン
  • ポータブルクラスライブラリ
  • 私は希望

    • Windowsのバージョンを含む、本当にシンプルなアプリを作成しよう可能な限りコードをポータブルクラスライブラリに入れるのが好きです。 これで、System.IO.File.Exists()を使用してファイルが存在するかどうかを確認したいだけですが、Fileオブジェクトは使用できません。私は別のplattformsをターゲットにしようとしましたが、私はそれを動作させることはできません。

    答えて

    0

    System.IO.Fileは、PCLコードでは使用できません。プラットフォーム固有のコードで実装する必要があります。また、プラットフォームごとに存在することを確認する必要があります。私はそれがアンドロイドとiOSのために、MacとWindowsでそれを使ってみたことはないと知っています。 Xamarinのdocsからは少なくともMacにはSystem.IO.Fileがあるようです。

    各プラットフォームプロジェクトにメソッドを設定したら、XamarinのDependency Serviceを使用して、PCLコードからプラットフォーム固有のメソッドを参照できます。

    2

    @hvaughan3saidSystem.IO.FileがあなたのPCLからは使用できません、それは各プラットフォーム内に実装し、があなたのPCLにを注入される必要があるということで正しいです。それは良いニュースは、これらの多くのような共通のの要件は、すでにそれを行うためのプラグインがあるので、あなたはそれを自分で行う必要はありませんと言いました。

    PCLプロジェクトでPCLStorageプラグインを使用する方法について説明しているblog postをご覧ください。

    関連する問題