У меня есть сценарий powershell с добавленным типом:
Add-Type -TypeDefinition @'
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
[Serializable]
public struct md_size {
[MarshalAs(UnmanagedType.U4)] public uint md_type;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public byte[] md_data;
} ;
}
...'
Мне нужно преобразовать это в байтовый массив, чтобы отправить его по проводам.
Я пытался использоватьBinaryFormatter:
$in = ... (object of type md_size)
$mstr = New-Object System.IO.MemoryStream
$fmt = New-Object System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
$fmt .Serialize($mstr , $in)
$result = $mstr.GetBuffer()
И я ожидаю получить массив размером 260 обратно, но получу размер 256, который я не совсем понимаю.
Как я могу преобразоватьмоя структура в массиве byte []?