Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей Терно от 18-08-2019, 13:49:50

Название: Сохранение ExtendedDataBinaryChunk в ResultBuffer
Отправлено: Алексей Терно от 18-08-2019, 13:49:50
Для удобства дальнейшей работы решил сохранить свой класс в Xrecord в виде byte[].
Сериализую свой класс и получаю байтовый массив. Далее этот массив запихиваю в ResultBuffer и в Xrecord соответственно:
Код - C# [Выбрать]
  1. ResultBuffer rb = new ResultBuffer();
  2. rb.Add(new TypedValue((int)DxfCode.ExtendedDataBinaryChunk, bs));
В результате в Xrecord эти данные отсутствуют:
(https://i.ibb.co/fkdJjHH/2019-08-18-13-38-42.png)

Если заменить свои данные на тестовые:
Код - C# [Выбрать]
  1. rb.Add(new TypedValue((int)DxfCode.ExtendedDataBinaryChunk, new byte[] { 0, 1, 2, 3, 4 }));
то все сохраняется. Есть ли у ExtendedDataBinaryChunk какой-то лимит?

PS. Можно разбить этот массив на отдельные байты и сохранить в качестве отдельных строк в ResultBuffer. В этом случае все работает, но очень долго. Так что получаемый байтовый массив рабочий.
Название: Re: Сохранение ExtendedDataBinaryChunk в ResultBuffer
Отправлено: Алексей Терно от 18-08-2019, 14:27:28
Вот тут подробно расписано, как сохранить сериализованный класс в ExtensionDictionary:
https://adndevblog.typepad.com/autocad/2012/05/serialize-a-net-class-into-an-autocad-drawing-database.html (https://adndevblog.typepad.com/autocad/2012/05/serialize-a-net-class-into-an-autocad-drawing-database.html)