vijay vettri Ответов: 1

Как прочитать байтовый массив [размер может динамически изменяться] и присвоить его значение объекту пользовательского класса В C#


У меня есть класс, как показано ниже. И у меня есть байтовый массив. Первый байт имеет длину произведения. На основе этого названия продукта должно происходить распределение байтов. Таким образом, я могу получить динамическую коллекцию байтовых массивов. В этом случае как мне сопоставить это и присвоить значения в моем объекте класса?
[StructLayout(LayoutKind.Sequential)]
 public class Blob
   {
       #region Properties
       public int ProductLength { get; set; }
       public string ProductName { get; set; }
       public byte ProductVersion { get; set; }
       public byte ProductRevision { get; set; }
       public ushort ProtocolVersion { get; set; }
       public ushort ProductId { get; set; }
       public byte DataCount { get; set; }
       public ProductData ProductData { get; set; }
       #endregion
   }


Что я уже пробовал:

Я попробовал ручное отображение. Правильно ли это делать? Добрая помощь..
Blob blob = new Blob();

int i = 0;
int j = blob.ProductLength = bytes[i];

for (int count = i+1; count < j; count++)
    blob.ProductName = blob.ProductName+ bytes[count].ToString();

Richard Deeming

Какая строковая кодировка была использована для создания массива байтов?

Как только вы это узнаете, это будет тривиальный призыв к GetString(bytes, i, j) о правильном Encoding экземпляр для преобразования байтов обратно в строку.