【问题标题】:Xamarin - System.IO.File - namespace 'File' does not existXamarin - System.IO.File - 命名空间“文件”不存在
【发布时间】:2017-08-01 11:31:07
【问题描述】:

我正在尝试将本地 json 文件加载到字符串中,以便可以将其解析/反序列化为对象。

但是,尽管所有示例和 Xamarin 支持文档都建议我可以使用 System.IO.File.ReadAllText(...),但由于某种原因,我收到以下错误:

c# error: 'File' type or namespace name not found

我的代码看起来很简单,我无法通过加载文件,看起来应该很简单!

string jsonInput = System.IO.File.ReadAllText("example.json", Encoding.UTF8);
Quiz temp = JsonConvert.DeserializeObject<Quiz>(jsonInput);

我的标头也包括 System.IO..

`using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel; //ObservableCollection
using Newtonsoft.Json;
using System.IO;
using System.Reflection;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;`

我也尝试了以下解决方案:

            var assembly = typeof(LoadResourceText).GetTypeInfo().Assembly;
            Stream stream = assembly.GetManifestResourceStream("example.json");
            string jsonInput = "";
            using (var reader = new System.IO.StreamReader(stream))
            {
                jsonInput = reader.ReadToEnd();
            }

但是在这种情况下,'LoadResourceText' 没有找到,我无法确定应该用什么类型替换它。

任何帮助或建议将不胜感激!

我在 StackOverflow 上的第一篇文章,希望我做得对..

【问题讨论】:

  • 嗨!对不起,我的英语很差,但我也确实在这种事情上挣扎了很多。如果您使用的是 Xamarin.Forms,请确保不要在 PCL 项目中实现特定平台代码。 PCL 的 .Net Framework 包与我们在 xamarin 之外所知道的包有点不同……您需要使用依赖注入来使其正常工作。看这里:developer.xamarin.com/guides/xamarin-forms/…

标签: c# json xamarin xamarin.forms


【解决方案1】:

如果您将此文件用作本地资源,请确保它可用于每个设备,例如,在 Android 项目中,选择 file/properties/advanced/build 操作并将其设置为嵌入式资源。 有时代码很好,只是设备的文件“不存在”

【讨论】:

  • 感谢 DHLopez,虽然我认为这里的问题更多在于 system.io.file 命名空间,因为编译器不喜欢它...
  • 最后,你的回答正是我所说的 :) 我对 Xamarin 也有同样的感觉,对我来说还是新的,喜欢它,但有时它是一种痛苦
【解决方案2】:

^也见上面的回复^

我自己解决了这个问题。

我发现我的答案隐藏在 Xamarin 论坛上 YkshLeo 的论坛帖子中:

"...确保资源的构建操作设置为"嵌入式资源"

我真的希望 Xamarin 能够使他们的文档更加全面。也许是我的 .Net 菜鸟来了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2010-10-21
    • 2016-08-01
    • 2018-08-11
    • 1970-01-01
    • 2019-06-26
    相关资源
    最近更新 更多