title: Marshalling datatype issue
body: <p>Below is the code which I am trying to convert from c++ into c#</p>
  
  <pre><code>struct PSB {
     short    type_of_psb;
     short    call_dependent;
     int32    del_psb_status;
     uint32   seq_number[2];
     int32    uma_psb_status;
     short    psb_reserved[6];
  } 
  </code></pre>
  
  <p>Previously, I wrote below structure.</p>
  
  <pre><code>        [StructLayout(LayoutKind.Explicit)]
          public struct PSB
          {
              [FieldOffset(0)]
              public short type_of_psb;
              [FieldOffset(2)]
              public short call_dependent;
              [FieldOffset(4)]
              public int del_psb_status;
              [FieldOffset(8)]
              [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
              public uint32 seq_number; // Here is the problem
              [FieldOffset(16)]
              public int uma_psb_status;
              [FieldOffset(20)]
              [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
              public short[] psb_reserved;
          }
  </code></pre>
  
  <p>but above c# code does not work, problem is in member <strong>seq_number</strong></p>
  
  <p>So i changed it into </p>
  
  <p><code>public ulong seq_number</code> from <code>uint seq_number</code>, and I removed above marshalas attribute.</p>
  
  <p>Now it is working with legacy code. I don't know why ? What is the problem if I defined like as array ?</p>