An System.Reflection.Emit.UnmanagedMarshal object.
The DefineByValStr method is not a simple native marshal.
Only unmanaged marshal constructs can be made using these static constructors.
Marshaling an array is a more complex process than marshaling an integer parameter. Array members are copied in a specific order so that the other side can reconstruct the array exactly.