尝试从PCL项目中使用PCLStorage读取文件时出现异常

sub*_*bha 3 .net portable-class-library xamarin

我试图从PCL项目中获取文件PCLStorage,如下所示.我在Visual Studio 2015 Professional中使用Xamarin.

IFile file = await FileSystem.Current.GetFileFromPathAsync("file\path");
Run Code Online (Sandbox Code Playgroud)

但我得到例外:

System.NotImplementedException:此程序集的可移植版本中未实现此功能.您应该从主应用程序项目中引用PCLStorage NuGet包,以引用特定于平台的实现.

Che*_*ron 5

您需要将PCLStorage NuGet添加到PCL和特定于平台的项目中.

所以如果你有以下解决方案:

PCL
Android
iOS
Run Code Online (Sandbox Code Playgroud)

您需要将它添加到所有这些:

PCL
    PCLStorage
Android
    PCLStorage
iOS
    PCLStorage
Run Code Online (Sandbox Code Playgroud)

为什么?因为NuGet使用诱饵和开关技术,其中PCL包含带诱饵的简单外观.在运行时,这将通过特定于平台的实现进行切换.