1
Cecilを使用してフィールドをプロパティに置き換えることはできますか?具体的には:Mono.Cecilでフィールドをプロパティに置き換えることはできますか?
// Replace this.
public static readonly Something Thing = new Something(...);
// With this.
private static readonly Something _Thing = new Something(...);
public static Something Thing
{
get
{
// My goal is to insert some extra code here, which I can't do if it's a field.
return _Thing;
}
}
そして、可能なら効率的にできますか? I. Thing
のすべてのインスタンスをプロパティのget_Thing
への呼び出しで置き換えるには、すべての参照アセンブリ内のすべてのタイプのすべてのメソッドを実行する必要がありますか?
ユーザがpublic static Something Thing { get; } = new Something(...);
と書いてもらえるようにすればもっと簡単になるので、すでにプロパティですが、Unityのコンパイラはプロパティの初期化子をサポートしていないため、できません。
注:私はILの作業については何も知らない。