Как прочитать байтовый массив [размер может динамически изменяться] и присвоить его значение объекту пользовательского класса В 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
экземпляр для преобразования байтов обратно в строку.