Почему моно C # не может найти System.IO.File с моим кодом? - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь десериализовать очень большой файл json (63 МБ), анализируя его напрямую с помощью JSON.Net и StreamReader.Я занимаюсь разработкой в ​​Ubuntu 18.04 с использованием mono + monodevelop.Мне нужно, чтобы все было как можно более портативным.

на на этой странице документации JSON.Net приведен пример того, как непосредственно прочитать файл для десериализации

// 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

Кто-нибудь знает, почему моно не находит System.IO.File?

1 Ответ

0 голосов
/ 08 мая 2019

Нашел причину.

Очевидно, что полный .NET API недоступен, если я создаю проект переносимой библиотеки. Какие укусы, потому что мне нужен этот код для запуска хотя бы на MacOS и Windows, но я кое-что выясню.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...