我正在尝试使用PCLStorgae中的PCL项目添加文件,如下所示:
IFile file = await PCLStorage.FileSystem.Current.GetFileFromPathAsync("ProjectName.Data.AuthRequest.json");
上面总是返回null。 BuildAction设置为Embedded Resource。有可能在PCL中获取文件,但我在这里做错了什么。
更新
以下代码在不使用PCLStorage的情况下正常工作:
var assem = typeof(Class).GetTypeInfo().Assembly;
Stream stream = assem.GetManifestResourceStream(string.Format("ProjectName.CustomFolder.FileName"));
using (var reader = new System.IO.StreamReader(stream))
{
text = reader.ReadToEnd();
}
不确定为什么它会在PCLStorage中返回null。
答案 0 :(得分:1)
PCLStorage是对各种本机平台(iOS,Android,Windows等)的文件系统差异的抽象。
也许您发现图书馆的名称具有误导性? " PCL"在" PCLStorage"意味着,它允许您从共享代码(PCL)中访问特定于平台的文件系统。关于访问作为资源嵌入PCL的文件,它不。
正如您已经弄清楚的那样,GetManifestResourceStream()
是获取嵌入资源的正确方法。