我正在尝试使用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);
我收到了错误 -
对象引用未设置为对象的实例。
我的代码有什么问题?
答案 0 :(得分:0)
我认为您正在调用DependencyService错误。试试这个:
var bytes = DependencyService.Get<ILoclFileProvider>().GetFileBytes(filePath);
还要确保通过Android项目中名称空间上方的正确属性注册了它。
[assembly: Xamarin.Forms.Dependency (typeof (LocalFileProvider_Droid))]
此行确保依赖项在Xamarin运行时中注册。有关DependencyService的更多信息,请查看这些新的Microsoft docs pages。