eolian_mono: make struct immutable

Authored by Yeongjong Lee <yj34.lee@samsung.com> on Jan 27 2020, 9:46 PM.


eolian_mono: make struct immutable

Immutable value type is recommeneded for struct type in cs world.
DO NOT define mutable value types.
(see, https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/struct)

Also, this patch include refactoring of generated struct types.

  1. Change field type to property type that have only getter. it will fix CA1051(ref T8397).
  2. Remove internal NativeStruct. there is private field for marshalling struct instead.
  3. Fix some test cases that change value inside struct. because struct is immutable.

Test Plan: meson build -Dbindings=mono,cxx -Dmono-beta=true

Reviewers: woohyun, felipealmeida, Jaehyun_Cho

Subscribers: cedric, reviewers, committers

Tags: efl

Maniphest Tasks: T8397

Differential Revision: https://phab.enlightenment.org/D11146