When the MarshalAsAttribute.Value property is set to ByValArray, the MarshalAsAttribute.SizeConst field must be set to indicate the number of elements in the array. The MarshalAsAttribute.ArraySubType field can optionally contain the System.Runtime.InteropServices.UnmanagedType of the array elements when it is necessary to differentiate among string types. You can use this System.Runtime.InteropServices.UnmanagedType only on an array that whose elements appear as fields in a structure.
Value: ByValArray