I am not sure whether this is considered a bug: in .Net, System.Runtime.InteropServices.Marshal.SizeOf() is defined to throw an ArgumentException if the parameter is a generic type [1]. On Mono this method works even with generic types.
Should I file a bug report for this and other similar places where Mono is more lax than .Net?