Как маршалировать структуры со строковыми полями неизвестной длины в C #

Я получаю массив байтов, мне нужно демаршалировать его в структуру C #. Я знаю тип структуры, в ней есть строковые поля. Строки в массиве байтов выглядят так: два первых байта - это длина строки, затем сама строка. Я не знаю длины струн. Я точно знаю, что это Unicode!

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public class User
{
  int Id;//should be 1
  String UserName;//should be OFIR
  String FullName;//should be OFIR
}

байтовый массив выглядит так: 00,00,01,00, 00,00,08,00, 4F, 00,46,00,49,00,52,00, 00,00,08,00, 4F, 00,46,00,49,00,52,00,

Я также нашел эту ссылку с той же нерешенной проблемой: загрузка двоичных данных в структуру

Всем спасибо, Ofir

8
задан Community 23 May 2017 в 11:55
поделиться