Длина массива байтов не соответствует после сериализации объекта [duplicate]

Если вы получаете это сообщение во время сохранения или компиляции сборки, просто закройте все файлы, а затем откройте любой файл для компиляции и сохранения.

Для меня причина в том, что я переименовал файл, и старый файл все еще был открыт.

28
задан Tao 20 June 2010 в 13:54
поделиться

4 ответа

55
ответ дан Markus Safar 25 August 2018 в 23:34
поделиться
0
ответ дан Juan Nunez 25 August 2018 в 23:34
поделиться
  • 1
    Извините, я не понимаю, что вы имеете в виду ... Я могу отлаживать и смотреть на полученный десериализованный объект в VS, но это не говорит мне ничего о том, сколько объектов какого типа было в сериализованном потоке, что было дублировано , и т. д. (или это? Я что-то упустил?) – Tao 16 June 2010 в 11:55
  • 2
    Я хочу сказать, что если вы можете отлаживать, вы можете увидеть точное состояние потока сериализации, объект, переданный для сериализации и его содержимого. – Juan Nunez 16 June 2010 в 12:11
  • 3
    Извините, если я здесь скучный или отсутствует какая-то главная особенность VS, но поскольку у меня нет доступа к внутренним элементам BinaryFormatter, добавление точки останова просто позволит увидеть поток, а затем увидеть десериализованный объект; конечно, у меня есть содержимое потока в виде файла, и у меня был объект, прежде чем я даже сериализовал его, чтобы это не принесло мне ничего полезного. Моя проблема не в том, чтобы «исследовать». сам объект через VS IDE, я хотел бы понять структуру потока данных и использования пространства в нем. – Tao 16 June 2010 в 14:41
  • 4
    Извините, я действительно неправильно понял ваш вопрос. Я предполагаю, что нет такой важной функции. Виноват. – Juan Nunez 16 June 2010 в 15:43
7
ответ дан Tao 25 August 2018 в 23:34
поделиться
  • 1
    Сделайте все свои перечисления в виде байтов (public MyEnumName: byte) - вы сохраните еще немного места. – Vasyl Boroviak 20 June 2010 в 12:13
  • 2
    спасибо! не знал об этом! – Tao 20 June 2010 в 13:46
4
ответ дан Vasyl Boroviak 25 August 2018 в 23:34
поделиться
  • 1
    спасибо - я, в конечном счете, использую сериализацию XML (возможно), потому что читаемость для человека очень важна для меня, но на самом деле моя цель / вопрос прямо сейчас заключается в том, как понять, что на самом деле хранит класс BinaryFormatter, чтобы я мог определить, при реализации моей собственной сериализации ИЛИ адресовать некоторые другие проблемы с дизайном в самой структуре данных. Я хотел бы знать, что находится в файле! :) – Tao 16 June 2010 в 11:53
  • 2
    Уверенный BinaryFormatter хранит несколько копий одних и тех же объектов. Я проверил это некоторое время назад. Это действительно так. – Vasyl Boroviak 16 June 2010 в 12:00
  • 3
    Справедливо; Я проведу пару дней, чтобы узнать, найдет ли кто-нибудь / знает способ просмотра статистики по содержимому потока, как я предполагал, и в противном случае будет изучать что-то. – Tao 16 June 2010 в 14:43
  • 4
    Извините, еще одно замечание по этой теме - насколько я могу судить (в иерархической структуре с обратными ссылками несколько тысяч объектов различных типов, суммирующих до 10 МБ сериализованных) BinaryFormatter НЕ хранит несколько копий одного и того же объекта; Мне было бы интересно увидеть какие-либо доказательства обратного ... – Tao 20 June 2010 в 09:49
  • 5
    Я опубликовал некоторый код, чтобы доказать, что я ошибался. – Vasyl Boroviak 20 June 2010 в 12:06
Другие вопросы по тегам:

Похожие вопросы: