Immutable value type is recommeneded for struct type in cs world.
DO NOT define mutable value types.
Also, this patch include refactoring of generated struct types.
- Change field type to property type that have only getter. it will fix CA1051(ref T8397).
- Remove internal NativeStruct. there is private field for marshalling struct instead.
- Fix some test cases that change value inside struct. because struct is immutable.