使用Xamarin Filepicker插件上传文件

时间:2018-03-27 05:49:49

标签: c# xamarin.forms

我正在尝试使用nuget包filepicker上传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);

我收到了错误 -

  

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

我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

我认为您正在调用DependencyService错误。试试这个:

var bytes = DependencyService.Get<ILoclFileProvider>().GetFileBytes(filePath);

还要确保通过Android项目中名称空间上方的正确属性注册了它。

[assembly: Xamarin.Forms.Dependency (typeof (LocalFileProvider_Droid))]

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