C# 使用Xamarin文件选择器插件上载文件
我正在尝试使用nuget软件包文件选择器上载pdf文件。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;
我能够获取文件名和文件本地路径。 但是当我试图将文件转换为字节数组时,我得到了一个错误 这是我的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”被拒绝。你知道我在这里该做什么吗?知道。已选中读取外部存储和写入外部存储。