Rieccomi a voi con il solito problema di sintassi.

Ho finalmente capito come leggere/scrivere un Array multidimensionali in VB, avanza ancora un problema:
capire di che tipo di array si tratta (integer,byte,single,decimal,...) e quindi convertire il tipo in quanti byte occupa ogni singolo elemento (per ora è un argomento di passaggio, ma risulta ingestibile TipoInByte).

codice:
    Public Sub Write(ByVal Mat As Object, ByVal TipoInByte As Integer)
        Dim ND As Integer = 1
        If IsArray(Mat) Then ND = Mat.Length
        Dim NDinByte As Integer = TipoInByte * ND
        Dim VettByte(0 To NDinByte - 1) As Byte
        Buffer.BlockCopy(Mat, 0, VettByte, 0, NDinByte)
        internal_BinaryWriter.Write(VettByte)
        VettByte = Nothing
    End Sub
ho provato con istruzioni di questo tipo, ma per un verso o per l'altro mi danno errore

Dim tipo As Type
tipo = Mat.GetType().GetElementType
Dim NinByte = System.Runtime.InteropServices.Marshal.SizeOf(tipo .GetType)

Grazie anticipato per l'aiuto
Tomas