I am using a struct to pass to an unmanaged DLL as so -
[StructLayout(LayoutKind.Sequential)]
public struct valTable
{
public byt
You can use a fixed size buffer - which I suspect you really want anyway, so as to get the data "inline" in the struct (rather than a reference to an array elsewhere).
public fixed byte name[24];
You'll need to declare the struct as unsafe as well though.
Note that any "solution" which requires calling a static method or providing any kind of custom constructor will fail with your explicit goal of being able to create an array of these structs.