Ошибка сериализации и десериализации синтаксического узла с MemoryStream - PullRequest
0 голосов
/ 28 мая 2018

В течение последних нескольких дней я пытался решить эту проблему снова после нескольких месяцев игнорирования.

Я выбрал часть, которая вызывает проблемы, сводящую программу к простой сериализации и десериализации.Кажется, что MemoryStream или CSharpSyntaxNode при первом использовании в программе не хотят, чтобы это была первая операция десериализации.Но возникает вопрос: почему один из этих объектов чувствителен к той операции, которую вы запускаете первой?

Шаги для воссоздания:

1. Откройте программу, начните, чтобы у вас было значениеполучить узел и установить массив байтов столько раз, сколько вы хотите. Инициация

2a.Перезапустите программу и установите байтовый массив в значение до перезапуска, затем получите узел.Это вылетит Restart-A

2b.Перезапустите программу, запустите тест , установите байтовый массив в значение до перезапуска, затем получите узел.Это будет работать. Restart-B

Вот ссылка на проект .Используется чистое ядро ​​2.1.

1 Ответ

0 голосов
/ 29 мая 2018

Кажется, здесь более глубокая проблема, основанная на компиляторе Roslyn.Текущая версия, похоже, не в состоянии это сделать.На момент написания статьи неизвестно, предназначен ли он для такой работы или это ошибка.Подробности по открытому билету вы можете посмотреть здесь: Roslyn Github

...