我在Xamarin项目中遇到了一些从核心库访问文件的问题。
我的文件是schema.json,它位于Android项目的Assets文件夹和Touch项目的Resources文件夹中,但Application.Context.Assets.Open("schema.json")
或System.IO.File.ReadAllText("schema.json")
都无效。
您知道如何从核心库访问特定文件/文件夹吗?
PS:如果可以提供帮助,我正在使用MVVM Cross。
答案 0 :(得分:0)
假设您正在使用Xamarin.Forms并尝试以跨平台方式执行此操作,您可以使用this指南中的示例,如下所示:
var assembly = typeof(LoadResourceText).GetTypeInfo().Assembly;
Stream stream = assembly.GetManifestResourceStream("WorkingWithFiles.PCLTextResource.txt");
string text = "";
using (var reader = new System.IO.StreamReader (stream)) {
text = reader.ReadToEnd ();
}
为此,您需要将您的文件添加到您的Forms PCL项目中,其构建操作为EmbeddedResource
。
对于加载特定于平台的字符串,在底部附近,您可以看到使用IoC获得可以访问平台捆绑文件内容的实现的标准做法。