【发布时间】:2016-07-05 16:11:32
【问题描述】:
我尝试创建一个非常简单的应用程序,其中包含
- Windows 版本
- Mac 版
- 可移植类库
我想将代码(尽可能多地)放入可移植类库中。
现在我只想使用System.IO.File.Exists() 检查文件是否存在,但File 对象不可用。我试图针对不同的平台,但我无法让它工作。
【问题讨论】:
标签: c# xamarin portable-class-library xamarin.mac
我尝试创建一个非常简单的应用程序,其中包含
我想将代码(尽可能多地)放入可移植类库中。
现在我只想使用System.IO.File.Exists() 检查文件是否存在,但File 对象不可用。我试图针对不同的平台,但我无法让它工作。
【问题讨论】:
标签: c# xamarin portable-class-library xamarin.mac
@hvaughan3 said 是正确的,因为System.IO.File 在您的 PCL 中不可用,它需要在每个平台内实现并注入到您的 PCL 中。也就是说,好消息是,就像许多这些常见要求一样,已经有一个插件可以做到这一点,所以你不需要自己做。
查看以下blog post,它描述了如何在您的 PCL 项目中使用 PCLStorage 插件。
【讨论】:
System.IO.File 在 PCL 代码中不可用。您将需要在特定于平台的代码中实现。您还需要验证它是否适用于每个平台。我知道它适用于 Android 和 iOS,从未尝试在 Mac 和 Windows 上使用它。尽管从 Xamarin 的 docs 看来,至少 Mac 确实有 System.IO.File。
在每个平台项目中都有方法后,您可以使用 Xamarin 的 Dependency Service 从 PCL 代码中引用特定于平台的方法。
【讨论】: