Como faço o tipo de usuário de matriz de bytes de tamanho fixo em c #?

Eu estou convertendo um antigo programa Visual Basic para C #. Ele envia mensagens para algumas máquinas industriais através de ethernet. Para fazer isso, ele monta um fluxo de bytes a partir de partes definidas pelo usuário de tamanho fixo.

A maioria desses blocos é pequena e em C # é fácil criar structs de alguns bytes ou ints e controlar seu tamanho e layout usando o StructLayout, por exemplo.

[StructLayout(LayoutKind.Sequential, Pack = 1)]

... então, quando entramos em um espaço não gerenciado para fazer uma cópia em byte, não temos problemas de ordem ou preenchimento de bytes.

Mas algumas das estruturas do VB6 são grandes matrizes, por exemplo,

Private Type SEND_MSG_BUFFER_320_BYTES
    bytes(0 To 319) As Byte  '320 bytes
End Type

e eu estou lutando com como fazer isso em c #. Eu posso fazer um array de tamanho fixo em uma classe, por exemplo,

  [StructLayout(LayoutKind.Sequential, Pack = 1)]
  public class SOME_BYTES
  {
      public byte[] b = new byte[320];
  } 

mas para fazer a cópia byte-wise eu preciso ser capaz de descobrir o tamanho deste em tempo de execução e System.Runtime.InteropServices.Marshal.SizeOf retorna um4 por esta.

Qualquer sugestão de como isso será muito apreciado.

questionAnswers(3)

yourAnswerToTheQuestion