Xamarin 从 Core 访问文件

Xamarin access to a file from Core

我在 Xamarin 项目上遇到一些问题,无法从核心库访问文件。

我的文件是 schema.json,它位于 Android 项目的 Assets 文件夹和 Touch 项目的 Resources 文件夹中,但 Application.Context.Assets.Open("schema.json")System.IO.File.ReadAllText("schema.json") 都不起作用。

您知道如何从核心库访问特定的 file/folder 吗?

PS : 如果有帮助,我正在使用 MVVM Cross。

假设您正在使用 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 获得可以访问平台捆绑文件内容的实现的标准做法。