为什么Mono C#无法用我的代码找到System.IO.File?

时间:2019-05-08 02:00:24

标签: c# mono

我试图通过直接使用JSON.Net和StreamReader解析非常大的json文件(63mb)来反序列化。我正在使用mono + monodevelop在Ubuntu 18.04中进行开发。我需要使事情尽可能便携。

在JSON.Net文档的this page上,它给出了一个示例,该示例如何直接读取文件以进行反序列化

// deserialize JSON directly from a file
using (StreamReader file = File.OpenText(@"c:\movie.json"))
{
    JsonSerializer serializer = new JsonSerializer();
    Movie movie2 = (Movie)serializer.Deserialize(file, typeof(Movie));
}

所以我正在尝试做

using System;
using System.IO;
using Newtonsoft.Json;

private void LoadJson(string path)
{
    using (StreamReader json_file = File.OpenText(path))
    {
        blah blah
    }
}

但是,monodevelop向The name 'File' does not exist in the current context投诉

我什至无法直接通过System.IO.File.OpenText来解决

有人知道为什么mono无法找到System.IO.File吗?

1 个答案:

答案 0 :(得分:0)

找到原因。

显然,如果创建可移植库项目,则无法使用完整的.NET API。之所以会这样,是因为我需要这段代码至少可以在MacOS和Windows上运行,但是我会弄清楚的。