ブログにでも書く?
C# 入門の雑記?
usingSystem.Runtime.CompilerServices;varp=newPrivate();GetValue(p)=99;Console.WriteLine(p);// 99// アクセス制限無視してメンバーにアクセスする手段を用意したらしい。// 今まではリフレクション(IL Emit)でやりたい放題やってたけども、// AOT (リフレクションをソースジェネレーターで置き換えたい)で困るからって。//// ランタイム側で UnsafeAccessor 属性付きの external メソッドを特別扱い(intrinsic)してる。[UnsafeAccessor(UnsafeAccessorKind.Field,Name="_value")]externstaticrefintGetValue(Privatex);classPrivate{privateint_value;// Make field readonly 出っぱなしにはなる。publicoverridestringToString()=>_value.ToString();}基本的には AOT 向け。
シリアライザーで使うのが一番の動機。
単体テストとかにも使えそう。 → すでに neue さんが
InternalVisibleTo は広範囲にわたって公開されすぎる感ある。
Visual Studio は昔 internal accessor (中身はリフレクション)とか生成してくれる機能持ってたのに気が付いたら消えてた。
ブログにでも書く?
C# 入門の雑記?
基本的には AOT 向け。
シリアライザーで使うのが一番の動機。
単体テストとかにも使えそう。 → すでに neue さんが
InternalVisibleTo は広範囲にわたって公開されすぎる感ある。
Visual Studio は昔 internal accessor (中身はリフレクション)とか生成してくれる機能持ってたのに気が付いたら消えてた。