C# 使用Xamarin文件选择器插件上载文件

C# 使用Xamarin文件选择器插件上载文件,c#,xamarin.forms,C#,Xamarin.forms,我正在尝试使用nuget软件包文件选择器上载pdf文件。 我能够获取文件名和文件本地路径。 但是当我试图将文件转换为字节数组时,我得到了一个错误 这是我的pcl代码- public interface ILoclFileProvider { byte[] GetFileBytes(string path); } public static class FileUtility { public static ILoclFileProvider FileSystem { get;

我正在尝试使用nuget软件包文件选择器上载pdf文件。
我能够获取文件名和文件本地路径。 但是当我试图将文件转换为字节数组时,我得到了一个错误

这是我的pcl代码-

public interface ILoclFileProvider
{
    byte[] GetFileBytes(string path);
}

public static class FileUtility
{
    public static ILoclFileProvider FileSystem { get; set; }

    public static void SetUp(ILoclFileProvider fs)
    {
        FileSystem = fs;
    }
}
这是我的Droid项目代码-

public class LocalFileProvider_Droid : ILoclFileProvider
{
    public byte[] GetFileBytes(string filePath)
    {
        return File.ReadAllBytes(filePath);
    }
}
在我的pcl项目中,我称之为-

var bytes = FileUtility.FileSystem.GetFileBytes(filePath);
我犯了个错误-

对象引用未设置为对象的实例


我的代码出了什么问题?

我认为您调用DependencyService是错误的。试试这个:

var bytes=DependencyService.Get().GetFileBytes(文件路径)

还要确保您通过Android项目中命名空间上方的右属性注册了它

[程序集:Xamarin.Forms.Dependency(typeof(LocalFileProvider\u Droid))]


此行确保在Xamarin运行时中注册依赖项。有关DependencyService的更多信息,请查看这些新的Microsoft。

您需要使用DependencyService。是的,它有效。但现在我收到一个错误,即“访问路径”/“存储/仿真/0/Download/future\u of_js\u 2018\u progress.pdf”被拒绝。你知道我在这里该做什么吗?知道。已选中读取外部存储和写入外部存储。