var comps = [ 2008, 10, 8, 00, 16, 34, 254 ];
var d = eval("new Date(" + comps.join(",") + ");");
Для массивов попробуйте использовать ключевое слово fixed
:
public fixed byte DeviceInfo[MAX_LINK_DEVINFO];
public fixed byte Reserved[40];
всякий раз, когда я инициализирую структуру, Поля Name, DeviceInfo и Reserved все установлены на null
Это правильно, и ваше определение мне кажется нормальным (BTW, вам не нужно [MarshalAs]
в примитивных полях, поведение по умолчанию - делать то, что вы указали там). Поскольку ваши поля массива имеют значение null
, маршалер ничего не сделает с ними при маршалинге вашей структуры в неуправляемую память, но он создаст строки и массивы при демаршалинге.